假设我有一个字符串'ABCSOSLOL',我想让它变成'ABC,SOS,LOL,'
我通过这次电话能够做到这一点
SELECT REGEXP_REPLACE('ABCSOSLOL',([[:alpha:]])([[:alpha:]])([[:alpha:]]),'\1\2\3,',1,0);
但是,如果字符串变成'AB 1 SOSLO 9',这将不起作用-因为现在它必须是字母数字。
更改:alpha:to [a-z 0 -9]不插入逗号。是否有字母数字替代:alpha:还是更好的方法?
在Teradata和Oracle中尝试这一点。
1条答案
按热度按时间izkcnapc1#
在Oracle中,您可以用途:
或:
哪个输出:
| REGEXP_REPLACE('ABC123XY4 ','(:ALNUM:{3})','\1,')|
| --------------|
| ABC、123、XY4、|
如果你想去掉后面的逗号,你可以使用
RTRIM(REGEXP_REPLACE('ABC123XY4', '([[:alnum:]]{3})', '\1,'), ',')
。fiddle