我知道如何对结果集进行排序:
SELECT * FROM `People` ORDER BY `LastName` ASC
但是,姓氏为空的结果显示在开头。如何按升序排序,并在末尾而不是开头显示 NULL 结果?
最佳答案
SELECT
*
FROM
People
ORDER BY
CASE WHEN LastName IS NULL THEN 1 ELSE 0 END,
LastName
你也可以简单地使用
SELECT
*
FROM
People
ORDER BY
COALESCE(LastName, 'ZZZZZ')
从技术上讲,如果某人在您的数据库中的姓氏实际上是“ZZZZZZ”,则第二个版本会失败。
注意:我确定这只是因为您提供了一个示例,但我希望您没有在实际生产代码中使用 SELECT *... :)
关于sql - MySQL:如何按列按升序排序,并在末尾显示 NULL 而不是开头?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3514298/