尝试使用CASE按字母顺序排序DB列

时间:2014-07-21 13:45:17

标签: mysql sql

我有一个database table,其中包含许多字段,这些字段的值为NULL,用于特定的column类别。

目前我正在执行此statement,它会返回最后出现NULL的所有条目的列表。但是,出于某种原因,它不按字母顺序排序,我想知道是否有人可以帮助我?

这是我的剧本:

SELECT c.* FROM `directorycolumn` c
WHERE `c`.`directorycompany_id` = 740
ORDER BY CASE WHEN `category` IS NULL THEN 0 ELSE 1 END DESC

这会在结尾输出column类别NULL但不按字母顺序排列。 I.e第一个条目类别以T开头......但我的类别以A开头。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

只需添加第二个Order By子句:

SELECT c.* FROM `directorycolumn` c
WHERE `c`.`directorycompany_id` = 740
ORDER BY CASE WHEN `category` IS NULL THEN 0 ELSE 1 END DESC, `category` ASC