【问题标题】:How can I have a custom order in Snowflake?如何在 Snowflake 中进行自定义订单?
【发布时间】:2022-10-21 21:11:45
【问题描述】:

在雪花中,我如何定义自定义排序顺序。

为了解释我想要的内容,请考虑这张表:

ID  Language    Text
0   ENU         a
0   JPN         b
0   DAN         c       
1   ENU         d
1   JPN         e
1   DAN         f
2   etc...

在这里,我想按以下顺序返回按语言排序的所有行:Language = ENU 首先出现,然后是 JPN,最后是 DAN。

这甚至可能吗?

【问题讨论】:

    标签: snowflake-cloud-data-platform snowflake-schema


    【解决方案1】:

    使用 CASE 表达式并为每种语言关联值:

    SELECT *
    FROM tab
    ORDER BY ID, CASE LANGUAGE WHEN 'ENU' THEN 1 WHEN 'JPN' THEN 2 WHEN 'DAN' THEN 3 END
    

    DECODE 函数:

    ORDER BY ID, DECODE(LANGUAGE, 'ENU',1, 'JPN', 2, 'DAN', 3)
    

    【讨论】:

    • 谢谢!我编辑了我的问题,我想按语言排序,按以下顺序:ENU、JPN、DNA 等等:ENU、JPN、DNA、ENU、JPN、DNA、ENU、JPN、DNA
    猜你喜欢
    • 1970-01-01
    • 2021-04-24
    • 1970-01-01
    • 2021-07-24
    • 2018-04-16
    • 1970-01-01
    • 1970-01-01
    • 2021-10-28
    相关资源
    最近更新 更多