Redshift中多空格替换为单空格问题求助:replace函数无效
解决Redshift中替换多连续空格的问题
你用replace(col_name,' ',' ')无效的原因很直白:这个函数只会把连续两个空格替换成一个,要是遇到三个及以上的连续空格,替换后会剩下“单个空格+单个空格”,也就是还是两个空格,没法一次性处理所有多空格场景。
直接用Redshift支持的REGEXP_REPLACE函数就能搞定,它支持正则匹配,能一次性替换所有连续的多空格:
SELECT REGEXP_REPLACE(col_name, ' +', ' ') FROM table;
补充说明:
' +'是正则表达式,+表示匹配一个或多个连续的空格,不管原来有多少个连续空格,都能直接替换成单个空格- 如果字段里还包含制表符、换行符这类空白字符,想要一并替换成单个空格,可以把正则改成
'\\s+':
SELECT REGEXP_REPLACE(col_name, '\\s+', ' ') FROM table;
内容的提问来源于stack exchange,提问作者Harsh Shukla
相关产品推荐
相关产品推荐

