一个约有200行的表,其中15行的数值为rankClass(1-15(。其余的将具有NULL值。
ORDER BY rankClass, nameLast
它首先发布具有NULL值的行,当然,当我添加DESC时,它会首先列出设置行,但15-1。我希望它先列出那些有值的,1-15,然后按nameLast列出其余的。
我试过合并,但结果是1,10,11,12,13,14,15,2,3,4,5,6,7,8,9。
我该如何获得我想要的结果?
您可以显式检查rankClass
中的null
s,并通过将它们移动到末尾的表达式排序:
SELECT *
FROM mytable
ORDER BY rankClass IS NULL, -- false comes before true
rankClass
如果将rankclass的符号反转,则可以降序排序,最后留下null,例如
SELECT RankClass, NameLast
FROM T
ORDER BY -RankClass DESC, nameLast;
数据库示例<gt;小提琴