Snowflake中含内嵌逗号的字段拆分问题求助
Snowflake按特定逗号拆分列的解决方案
直接用regexp_split_to_table搭配正则表达式就能解决这个问题,替代原来的split_to_table。
核心思路是用正则匹配仅前后都没有空格的逗号作为分隔符,具体SQL示例如下:
SELECT t.original_column, s.value AS split_result FROM your_table t, LATERAL regexp_split_to_table(t.A, '(?<!\\s),(?!\\s)') s
正则说明
(?<!\\s):负向回顾断言,确保逗号前面没有空白字符(空格、制表符等),(?!\\s):负向前瞻断言,确保逗号后面没有空白字符
这样一来,像"Scooter > Sprinting, Jogging and Walking"里带空格的逗号就不会被当作分隔符,只会拆分那些无空格包裹的逗号(比如a,b,c里的逗号),完美避开错误拆分的情况。
内容的提问来源于stack exchange,提问作者Python_Hey
相关产品推荐
相关产品推荐

