You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 21:17:07