【问题标题】:How to split a column value to multiple columns based on delimiter in Snowflake如何根据雪花中的分隔符将列值拆分为多列
【发布时间】:2020-12-11 14:07:05
【问题描述】:

需要根据分隔符将列值拆分为多列, 还需要根据否动态创建列。分隔符,分隔符可以是逗号左右。谢谢,

【问题讨论】:

  • 请提供样本数据和期望的结果。
  • 正如 Gordon 所说,很难知道如何通过输入和所需输出来回答这个问题。在这里,我写了一个类似的更具体问题的答案:stackoverflow.com/q/65257962/132438

标签: sql split snowflake-cloud-data-platform


【解决方案1】:

在这种情况下,您最好使用数组。您尚未指定每条记录是否具有相同数量的分隔符,因此为表动态创建列需要一些脚本。如果是,您可能会使用SPLITLATERAL FLATTENPIVOT,但数据透视需要静态列名,因此您可能需要一个存储过程来处理它。

要回答您的第一个问题,您可以使用SPLIT 和/或SPLIT_PART 将列拆分为值。 SPLIT 函数会为您创建一个数组,而SPLIT_PART 函数会创建一个数组,但会从数组中输出一个值。

https://docs.snowflake.com/en/sql-reference/functions/split.html

https://docs.snowflake.com/en/sql-reference/functions/split_part.html

https://docs.snowflake.com/en/sql-reference/functions/flatten.html

https://docs.snowflake.com/en/sql-reference/constructs/pivot.html

【讨论】:

    猜你喜欢
    • 2023-02-11
    • 1970-01-01
    • 1970-01-01
    • 2018-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-27
    • 1970-01-01
    相关资源
    最近更新 更多