sim*_*ife 2 sql oracle oracle11g
我需要在 Oracle SQL 中的每个字符后插入字符串。
例子:
ABC will A,B,C
DEFG will be D,E,F,G
Run Code Online (Sandbox Code Playgroud)
这个问题只给出字符串中的一个字符
编辑:正如一些研究员所提到的,Oracle 不承认这个正则表达式。所以我的方法是做一个正则表达式来匹配所有字符,在字符后添加一个逗号,然后删除最后一个逗号。
WITH regex AS (SELECT REGEXP_REPLACE('ABC', '(.)', '\1,') as reg FROM dual) SELECT SUBSTR(reg, 1, length(reg)-1) FROM regex;
Run Code Online (Sandbox Code Playgroud)
请注意,rtrim如果您要解析的字符串具有最后的结尾逗号并且您不想将其删除,则解决方案可能会出现错误。
以前的解决方案:(不适用于 Oracle)
检查这是否有效:
SELECT REGEXP_REPLACE('ABC', '(.)(?!$)', '\1,') FROM dual;
Run Code Online (Sandbox Code Playgroud)
它对regexp_replace每个字符执行 a ,但对同一个字符执行最后一个,后跟 a ,
要了解regexp_replace工作原理,我建议您:https : //docs.oracle.com/cd/B19306_01/server.102/b14200/functions130.htm