在SQL Server中,我有一个列,如ID,包含整数降序,其中一个空值为ex.
ID
====
20
19
18
...
2
1
null
select id from mytable order by id desc
Run Code Online (Sandbox Code Playgroud)
我需要这个按顺序降序但在顶部为null:
ID
====
null
20
19
18
...
2
1
Run Code Online (Sandbox Code Playgroud)
null是先验的结果
union all
Run Code Online (Sandbox Code Playgroud)
并且需要在那里.我有一些想法,比如创造一个人为的大数字.只是想看看你的家伙能想出什么.玩得开心!
使用CASE你ORDER BY的NULL第一个强制s.这是SQL Server支持的.
SELECT
id
FROM mytable
ORDER BY
CASE WHEN id IS NULL THEN 0 ELSE 1 END,
id DESC
Run Code Online (Sandbox Code Playgroud)
它的工作原理是派生一个"列",对其进行排序,其中包含0 NULL和1.然后,我们添加ORDER BY列链的其余部分以继续排序,因此添加id DESC强制剩余的行(具有我们派生的1的行)按ID降序排序.
| 归档时间: |
|
| 查看次数: |
1269 次 |
| 最近记录: |