除了一个项目之外,如何按字母顺序从SQL中检索列表?

时间:2014-08-13 11:41:04

标签: sql sorting sql-order-by

我在SQL中的表中有一个包含Occupations列的表。除了一些职业,我还有一个“他人”的项目。我将在下拉列表中显示这些内容并选择“其他”,我将显示一个文本框。

Ex:商业     学生     雇员     其他

我想在升序中检索列表,但是当我使用ORDER BY ASC执行此操作时,“其他”将介于两者之间。我希望它在返回列表的末尾。

喜欢商业      雇员      学生      其他

请建议一个解决方案,以便在检索时将其他人保留在列表的末尾。 (注意:列表是动态的,将会改变,所以我不能硬编码)

3 个答案:

答案 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