按特定顺序对表列进行排序

时间:2020-09-03 14:29:47

标签: sql sql-server tsql

请问我是否有以下记录:

    ID  Type

    1   AUY
    2   NGD
    3   AUY
    4   NGD
    5   BUL

我喜欢按类型对其进行排序,以便“ AUY”和“ NGD”按字母顺序进行排序,而“ BUL”始终在末尾。

所以它看起来像这样:

    AUY
    AUY
    NGD
    NGD
    BUL

2 个答案:

答案 0 :(得分:2)

假设您的表名为table_1,则可以执行以下操作:

SELECT * FROM [table_1]
ORDER BY (CASE WHEN [Type] = 'BUL' THEN 2 ELSE 1 END),
    [Type]

或者,您可以为订单优先级添加新列,并在需要更高可扩展性的情况下使用。

答案 1 :(得分:1)

使用CASE表达式:

...
ORDER BY CASE [Type] WHEN 'AUY' THEN 1
                     WHEN 'NGD' THEN 2
                     WHEN 'BUL' THEN 3
                     ELSE 4
         END;