繁体   English   中英

如何横向展平雪花中非数组格式的varchar列

[英]How to lateral flatten a varchar column which is not in an array format in snowflake

我正在尝试将varchar横向展平到数组以分解数组中的元素

例如[trJGrODW4n4iLRN2A4WeraV740vH4L81ikd7KnRfsD bE578vR4L81isq7YnRchM]

我尝试了以下方法:

  1. 我试图替换varchar空间 ," (无效)。
  2. 使用过的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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM