【问题标题】:How can I do natural sort in Snowflake?如何在雪花中进行自然排序?
【发布时间】:2020-02-19 19:08:52
【问题描述】:

我正在尝试使用几种可能的结构对 Jira 故事进行排序:3 到 5 个字符后跟破折号,后跟 3 或 4 位数字,例如XXX-###、XXX-####、XXXX-###等

【问题讨论】:

  • 您能否提供一个示例样本数据以及您希望它如何排序?
  • 如果您已经在 Snowflake 中使用 order by,您能否分享一下您得到的结果?无论如何想知道排序规则是否可以提供帮助并值得一看? docs.snowflake.net/manuals/sql-reference/…

标签: snowflake-cloud-data-platform natural-sort


【解决方案1】:

我不太清楚你所说的自然排序是什么意思,但你可以按正则表达式排序。例如,仅获取 JiraID 字符串的编号。

--This Returns '123'
select REGEXP_SUBSTR( 'xx-123' , '\\d+');

--This Returns 'xx'
select REGEXP_SUBSTR( 'xx-123' , '\\w+');

--So this would sort by just the number in a Jira number column based on the number part
... order by REGEXP_SUBSTR( JiraID , '\\d+')::int;

--This would order first by IDs with the same string, and then order by Number
... order by REGEXP_SUBSTR( JiraID , '\\w+'), REGEXP_SUBSTR( JiraID , '\\d+')::int;

如果您提供具有所需输出顺序的示例输入,则可能会出现更复杂的示例

【讨论】:

    猜你喜欢
    • 2015-06-17
    • 1970-01-01
    • 1970-01-01
    • 2020-03-14
    • 2011-02-20
    • 2019-09-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多