我在SQL中的表中有一个包含Occupations列的表。除了一些职业,我还有一个“他人”的项目。我将在下拉列表中显示这些内容并选择“其他”,我将显示一个文本框。
Ex:商业 学生 雇员 其他
我想在升序中检索列表,但是当我使用ORDER BY ASC
执行此操作时,“其他”将介于两者之间。我希望它在返回列表的末尾。
喜欢商业 雇员 学生 其他
请建议一个解决方案,以便在检索时将其他人保留在列表的末尾。 (注意:列表是动态的,将会改变,所以我不能硬编码)
答案 0 :(得分:1)
尝试类似
的内容SELECT * FROM
(
SELECT *,
CASE WHEN <YourValue> = 'Others' THEN 1 ELSE 0 END AS PrimaryOrder
FROM <YourTable>
) AS SubQuery01
ORDER BY PrimaryOrder, YourOrderByCriteria
答案 1 :(得分:1)
可能的解决方案:
select occupations from mytable where occupations != 'Others' order by 1 ASC
union
select occupations from mytable where occupations == 'Others';
但这太过分了,你可以手动添加其他人
答案 2 :(得分:0)
我已经尝试过一个解决方案并且正在为我工作..
SELECT O.NAME FROM OCCUPATIONTABLE O
ORDER BY CASE
WHEN O.NAME = 'Others'
THEN 1
ELSE 0
END ASC
,O.NAME ASC