MYSQL 排序依据 - NULL 值影响我的结果
MYSQL order by - NULL values impacting my results
大约 200 行的 table,其中 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
,并通过将它们移动到末尾的表达式进行排序:
SELECT *
FROM mytable
ORDER BY rankClass IS NULL, -- false comes before true
rankClass
如果你反转 rankclass 的符号,你可以降序排序,最后留下空值,例如
SELECT RankClass, NameLast
FROM T
ORDER BY -RankClass DESC, nameLast;
大约 200 行的 table,其中 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
,并通过将它们移动到末尾的表达式进行排序:
SELECT *
FROM mytable
ORDER BY rankClass IS NULL, -- false comes before true
rankClass
如果你反转 rankclass 的符号,你可以降序排序,最后留下空值,例如
SELECT RankClass, NameLast
FROM T
ORDER BY -RankClass DESC, nameLast;