如何使用limit进行自然排序查询?

cyej8jka  于 2021-07-15  发布在  ClickHouse
关注(0)|答案(1)|浏览(326)

我希望我的select查询能够使用以下概念进行自然排序:https://rosettacode.org/wiki/natural_sorting

wfveoks0

wfveoks01#

您可以像下面的查询一样使用排序规则设置。
考虑到clickhouse有排序错误#7482,对于某些语言(如en、de)失败。

SELECT arrayJoin(['kk 50', 'KK 01', '    KK 2', '  KK    3', 'kk 1', 'x9y99', 'x9y100']) item
ORDER BY item ASC
/*
Result:

┌─item──────┐
│     KK 2  │
│   KK    3 │
│ KK 01     │
│ kk 1      │
│ kk 50     │
│ x9y100    │
│ x9y99     │
└───────────┘

* /

SELECT arrayJoin(['kk 50', 'KK 01', '    KK 2', '  KK    3', 'kk 1', 'x9y99', 'x9y100']) item
ORDER BY item ASC COLLATE 'tr-u-kn-true-ka-shifted'
/*
Result:

┌─item──────┐
│ kk 1      │
│ KK 01     │
│     KK 2  │
│   KK    3 │
│ kk 50     │
│ x9y99     │
│ x9y100    │
└───────────┘

* /

相关问题