已编辑:
我有这样的字符串:C1,C4,C7-12,C15,C19
或DS23, 28, 35, 39
。如果可能的话,我需要一个字符串命令来仅提取数字ASCII子集中的字符。所以:C1,C4,C7-12,C15,C19
只会147121519
放弃所有的字母字符,空格和标点符号。同样,DS23, 28, 35, 39
将成为23283539
。
我的表:
Part_Number Ref_Location
12345 C1, C4, C7-12, C15, C19
AB354 DS1,5,19-37,46
N-98DX R1, R5-7, R75
我的SQL:
从表中选择Part_Number,SpecialStringFunction(Ref_Location,0123456789
);
期望的结果
12345 147121519
AB354 15193746
N-98DX 15775
我正在使用Microsoft Access 2010并连接到Oracle 11g
答案 0 :(得分:0)
你可以尝试类似的东西来完成你的任务。
SELECT MAX (yy)
FROM ( SELECT TO_NUMBER ( (REPLACE (SYS_CONNECT_BY_PATH (x, ','), ',', '')))
AS yy
FROM ( SELECT REGEXP_SUBSTR ('C1,C4,C7-12,C15,C19',
'[[:digit:]]',
1,
LEVEL)
AS x, LEVEL AS y
FROM DUAL
CONNECT BY LEVEL < 10)
CONNECT BY PRIOR y = y - 1)
如果您使用的是Oracle 11g,那么您可以很好地使用listagg函数而不是SYS_CONNECT_BY_PATH。