gpt4 book ai didi

sql - 3级嵌套排序

转载 作者:行者123 更新时间:2023-11-29 12:56:11 25 4
gpt4 key购买 nike

我正在尝试实现 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 的值对第三级进行排序。

最佳答案

您可以使用另一个 case 语句:

ORDER BY A,
CASE B WHEN 'GOOD' THEN 1
WHEN 'OK' THEN 2
WHEN 'BAD' THEN 3
END,
CASE B WHEN 'GOOD' THEN C ELSE D END

在示例数据中,似乎没有任何行同时具有 C 和 D 的值。如果确实如此,您可以使用 coalesce 来简化事情:

ORDER BY A,
CASE B WHEN 'GOOD' THEN 1
WHEN 'OK' THEN 2
WHEN 'BAD' THEN 3
END,
COALESCE(C, D)

关于sql - 3级嵌套排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42727089/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com