假如有一张表ID Name PY
1 中国 ZG
2 日本 RB
3 XX null如果按 PY ASC 排序,顺序如下
3 ..
2 ..
1 ..
null 这条记录会排在最前如果想把PY列值为null的放在最后面,应如何写语句
1 中国 ZG
2 日本 RB
3 XX null如果按 PY ASC 排序,顺序如下
3 ..
2 ..
1 ..
null 这条记录会排在最前如果想把PY列值为null的放在最后面,应如何写语句
(
SELECT 1, '中国', 'ZG' UNION all
SELECT 2, '日本', 'RB' UNION all
SELECT 3, 'XX', null
)
SELECT * FROM cte
ORDER BY CASE WHEN py IS NULL THEN '-999' ELSE py END ASC3 XX NULL
2 日本 RB
1 中国 ZG
insert into tb values(1 ,'中国', 'ZG')
insert into tb values(2 ,'日本', 'RB')
insert into tb values(3 ,'XX' , null)
goselect * from tb order by case when py is null then 2 else 1 end , pydrop table tb/*
ID Name PY
----------- ---------- ----------
2 日本 RB
1 中国 ZG
3 XX NULL(所影响的行数为 3 行)
*/