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

如何在Snowflake中对列内数组元素排序并转换数组格式

解决方案

以下是满足需求的Snowflake SQL查询语句:

SELECT
    test_date,
    article_name,
    CONCAT('[', ARRAY_TO_STRING(ARRAY_SORT(SPLIT(description, ',')), ','), ']') AS sorted_description_array
FROM array_test;

逻辑说明

  • SPLIT(description, ','):将description列的逗号分隔字符串拆分为Snowflake数组类型,例如'C,A,B'会被拆分为{C,A,B}。
  • ARRAY_SORT(...):对拆分后的数组进行字母升序排序,排序后{C,A,B}和{B,C,A}都会变成{A,B,C},确保第3、4行的结果完全一致。
  • ARRAY_TO_STRING(..., ','):将排序后的数组转换回逗号分隔的字符串,得到'A,B,C'。
  • CONCAT('[', ..., ']'):在字符串首尾添加方括号,将格式从Snowflake默认的大括号数组转为方括号格式,最终输出'[A,B,C]'。

替代方案(直接替换数组格式符号)

如果不想多一步数组转字符串的操作,也可以直接对排序后的数组的默认字符串输出进行符号替换,写法更简洁:

SELECT
    test_date,
    article_name,
    REPLACE(REPLACE(ARRAY_SORT(SPLIT(description, ',')), '{', '['), '}', ']') AS sorted_description_array
FROM array_test;

查询结果示例

TEST_DATEARTICLE_NAMESORTED_DESCRIPTION_ARRAY
2022-01-01AAA[A]
2022-01-02AAA[A,B]
2022-01-03AAA[A,B,C]
2022-01-03AAA[A,B,C]

内容的提问来源于stack exchange,提问作者Bad Coder

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 00:35:15