将UNION与ORDER BY一起使用不会在Sybase

时间:2016-01-20 16:54:28

标签: sorting union sybase

我有一份货币清单,例如美元,AED,INR,EUR,GBP(按表格货币输入的顺序)。我需要准备一个包含所有货币的查询,包括'ALL',但排序为'ALL'作为第一个。

预期结果应按以下顺序排列:

ALL
AED
EUR
GBP
INR
USD

我的SQL是:

SELECT 'ALL' Currency
UNION ALL
SELECT Currency FROM Currencies ORDER BY Currency

但是,上面的SQL由于排序而产生AED作为第一个。

AED
ALL
EUR
GBP
INR
USD

帮助赞赏将'ALL'放在首位。

1 个答案:

答案 0 :(得分:2)

您可以添加" Rank"在排序中使用的列,并使用您订购的派生表并从以下位置选择货币列:

SELECT Currency FROM (
    SELECT 'ALL' Currency, 1 Rank
    UNION ALL
    SELECT Currency, 2 Rank FROM Currencies
) t
ORDER BY Rank, Currency