mysql order by,null first,和DESC之后

Erv*_*vin 74 mysql sql-order-by

如何通过字段订购DESC,但首先列出NULL值?

所以我有一张桌子:

reuestId | offerId | offerTitle
1        | 1       | Alfa
NULL     | 2       | Beta
2        | 3       | Gamma
Run Code Online (Sandbox Code Playgroud)

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

NULL | 2 | Beta
2    | 3 | Gamma
1    | 1 | Alfa
Run Code Online (Sandbox Code Playgroud)

Don*_*sto 147

试试这个:

ORDER BY [reuestId] IS NULL DESC, [reuestId] DESC
Run Code Online (Sandbox Code Playgroud)

应该工作(对于mySql)


ype*_*eᵀᴹ 26

SELECT *
FROM TableX
ORDER BY (requestId IS NOT NULL)
       , requestId DESC
Run Code Online (Sandbox Code Playgroud)

  • @ xi.lin:不,第一个将`IS NULL`*(实际上是一个返回1或0的函数)放在DESC顺序中,这个按升序排列`IS NOT NULL`.他们是等同的. (3认同)