[英]How to lateral flatten a varchar column which is not in an array format in snowflake
我正在尝试将varchar横向展平到数组以分解数组中的元素
例如[trJGrODW4n4iLRN2A4WeraV740vH4L81ikd7KnRfsD bE578vR4L81isq7YnRchM]
我尝试了以下方法:
与,"
(无效)。 strtok_to_array
>获取字符串的unicode开始 Select s.value, replace(varchar_col,' ',',"') as to_array_format,
strtok_to_array(varchar_col,'')as strtok_to_array,* from table , lateral flatten(input => strtok_to_array(varchar_col,''))s
实际结果:
1. trJGrODW4n4iLRN2A4WeraV740vH4L81ikd7KnRfsD bE578vR4L81isq7YnRchM
2. [ "trJGrODW4n4iLRN2A4Wer\u0002aV740vH4L81ikd7KnRfsD\u0002bE578vR4L81isq7YnRchM" ]
预期结果:
1. ["trJGrODW4n4iLRN2A4Wer","aV740vH4L81ikd7KnRfsD","bE578vR4L81isq7YnRchM"]
2. ["trJGrODW4n4iLRN2A4Wer","aV740vH4L81ikd7KnRfsD","bE578vR4L81isq7YnRchM"]
从您得到的输出中,您的数据看起来包含空字节。 如果要将字符串以空字节为边界拆分为数组,则可以使用
strtok_to_array(varchar_col,hex_decode_string('00'))
hex_decode_string将十六进制编码的字符串作为输入,传递'00'将返回一个空字节,然后将其用作分隔符。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.