【发布时间】:2017-08-01 07:29:22
【问题描述】:
我正在尝试实现 3 级嵌套排序。基本上我有四列:
A | B | C | D
--- | --- | --- | ---
bob | GOOD| 1 |
kat | BAD | | 24
bob | OK | | 15
bob | GOOD| 20 |
bob | OK | | 10
bob | OK | 5 |
我需要三个级别的排序...第一级 A 列 ASC,第二级是 B 列上的大小写排序,第三级我需要根据 C 和 D 中的值进行排序,如果 B = 'GOOD' 并且如果 B 是任何其他值,则基于 C 排序。
我目前拥有的是:
ORDER
BY A,
CASE
WHEN B ='GOOD' THEN 1
WHEN B = 'OK' THEN 2
WHEN B = 'BAD' THEN 3
END, C
不过,这只会根据 C 的值对第三级进行排序。
【问题讨论】:
标签: sql postgresql sorting select sql-order-by