【发布时间】:2021-09-14 11:50:16
【问题描述】:
大约 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。
如何获得我正在寻找的结果?
【问题讨论】:
-
我不明白,为什么你最终通过应用
COALESCE来进行字符串排序。我很确定,ORDER BY COALESCE(rankClass, 999)之类的东西可以正常工作。我想你错误地使用了一个字符串,比如ORDER BY COALESCE(rankClass, '999')。 (顺便说一句,很遗憾,MySQL 不支持标准 SQL 子句ORDER BY ... NULLS LAST,这将是处理此问题的适当方式。)
标签: mysql sql select null sql-order-by