如何在Snowflake中移除指定列的特定换行回车字符
问题:Snowflake中移除字符串中的连续换行符
通过COPY INTO命令从CSV阶段文件加载数据到Snowflake表后,STRING字段存在多余的\r\n\r\n连续换行符,当前表数据如下:
+--------------------------------------------------------------------+--------+ | STRING | RESULT | +--------------------------------------------------------------------+--------+ | hhhhrerererereNRD\r\n\r\nthe 193how (test) testtest peo\r\n\r\n | 30.00 | +--------------------------------------------------------------------+--------+
期望执行查询后得到的输出:
+---------------------------------------------------------+--------+ | STRING | RESULT | +---------------------------------------------------------+--------+ | hhhhrerererereNRDthe 193how (test) testtest peo | 30.00 | +---------------------------------------------------------+--------+
之前尝试的SQL未达到预期效果:
SELECT regexp_replace(STRING,'\r\n\r\n','') FROM test;
解决方案
Snowflake的正则表达式中,\r和\n这类特殊字符需要用双反斜杠转义,否则会被解析为普通字符。以下提供两种可行写法:
写法1:精准匹配\r\n\r\n
SELECT regexp_replace(STRING, '\\r\\n\\r\\n', '') AS STRING, RESULT FROM test;
写法2:匹配任意连续空白字符(更通用)
如果需要同时处理其他连续空白(比如末尾的空格),可以用\s匹配所有空白字符(包括换行、空格等):
SELECT regexp_replace(STRING, '\\s{2,}', '') AS STRING, RESULT FROM test;
或者精准匹配连续两次及以上的\r\n:
SELECT regexp_replace(STRING, '(\\r\\n){2,}', '') AS STRING, RESULT FROM test;
内容的提问来源于stack exchange,提问作者Sai
相关产品推荐
相关产品推荐

