我有桌子:
ID | 日期 | 奖金 |
---|---|---|
1 | 2022-03-10 16:11:06.445559 | 6000 |
2 | 2022-03-15 16:11:06.445559 | 4000 |
3 | 2022-03-20 16:11:06.445559 | 空值 |
4 | 2022-03-25 16:11:06.445559 | 7000 |
5 | 2022-03-30 16:11:06.445559 | 空值 |
我需要使用 PostgreSQL 语法按日期和奖励列对行进行排序。首先应该是具有不可空奖金的最新(按日期排序)行。然后应该是按日期排序的具有可空奖金的行(也是最新的)结果应该是下一个:
ID | 日期 | 奖金 |
---|---|---|
4 | 2022-03-25 16:11:06.445559 | 7000 |
2 | 2022-03-15 16:11:06.445559 | 4000 |
1 | 2022-03-10 16:11:06.445559 | 6000 |
5 | 2022-03-30 16:11:06.445559 | 空值 |
3 | 2022-03-20 16:11:06.445559 | 空值 |
您可以使用条件 for bonus
while 它具有较高的优先级,然后按date
较低的优先级降序排序,例如
ORDER BY CASE WHEN bonus IS NULL THEN 1 ELSE 0 END, date DESC
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句