mysql order by,null first,and DESC after

0md85ypi  于 2023-05-21  发布在  Mysql
关注(0)|答案(4)|浏览(131)

我如何按字段对DESC进行排序,但首先列出NULL值?
我有一张table:

reuestId | offerId | offerTitle
1        | 1       | Alfa
NULL     | 2       | Beta
2        | 3       | Gamma

我想选择它们,以便结果为:

NULL | 2 | Beta
2    | 3 | Gamma
1    | 1 | Alfa
cyej8jka

cyej8jka1#

试试这个:

ORDER BY [reuestId] IS NULL DESC, [reuestId] DESC

应该工作(对于mySql)

pqwbnv8z

pqwbnv8z2#

SELECT *
FROM TableX
ORDER BY (requestId IS NOT NULL)
       , requestId DESC
rslzwgfq

rslzwgfq3#

更短的路:SELECT * FROM table ORDER BY -column
这将按升序对行进行排序,但对值取反,其中最上面的行是具有空值的行。

cedebl8k

cedebl8k4#

我知道这个操作是用mysql标记的,但是如果有人在这里寻找SQLServer的解决方案,在order by子句中似乎不支持is null,请使用以下命令:

ORDER BY iif(requestId IS NULL,1,0)
       , requestId DESC

相关问题