我如何按字段对DESC进行排序,但首先列出NULL值?我有一张table:
reuestId | offerId | offerTitle 1 | 1 | Alfa NULL | 2 | Beta 2 | 3 | Gamma
我想选择它们,以便结果为:
NULL | 2 | Beta 2 | 3 | Gamma 1 | 1 | Alfa
cyej8jka1#
试试这个:
ORDER BY [reuestId] IS NULL DESC, [reuestId] DESC
应该工作(对于mySql)
pqwbnv8z2#
SELECT * FROM TableX ORDER BY (requestId IS NOT NULL) , requestId DESC
rslzwgfq3#
更短的路:SELECT * FROM table ORDER BY -column这将按升序对行进行排序,但对值取反,其中最上面的行是具有空值的行。
SELECT * FROM table ORDER BY -column
cedebl8k4#
我知道这个操作是用mysql标记的,但是如果有人在这里寻找SQLServer的解决方案,在order by子句中似乎不支持is null,请使用以下命令:
order by
is null
ORDER BY iif(requestId IS NULL,1,0) , requestId DESC
4条答案
按热度按时间cyej8jka1#
试试这个:
应该工作(对于mySql)
pqwbnv8z2#
rslzwgfq3#
更短的路:
SELECT * FROM table ORDER BY -column
这将按升序对行进行排序,但对值取反,其中最上面的行是具有空值的行。
cedebl8k4#
我知道这个操作是用mysql标记的,但是如果有人在这里寻找SQLServer的解决方案,在
order by
子句中似乎不支持is null
,请使用以下命令: