在 Sybase 中将 UNION 与 ORDER BY 一起使用不会产生预期的结果
Using UNION with ORDER BY does not produce expected results in Sybase
我有一个货币列表,例如 USD、AED、INR、EUR、GBP(按 table 货币的输入顺序)。我需要准备一个包含所有货币的查询,包括 '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' 排在首位。
您可以添加用于排序的 "Rank" 列,并使用您订购的派生 table 和 select 货币列来自:
SELECT Currency FROM (
SELECT 'ALL' Currency, 1 Rank
UNION ALL
SELECT Currency, 2 Rank FROM Currencies
) t
ORDER BY Rank, Currency
我有一个货币列表,例如 USD、AED、INR、EUR、GBP(按 table 货币的输入顺序)。我需要准备一个包含所有货币的查询,包括 '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' 排在首位。
您可以添加用于排序的 "Rank" 列,并使用您订购的派生 table 和 select 货币列来自:
SELECT Currency FROM (
SELECT 'ALL' Currency, 1 Rank
UNION ALL
SELECT Currency, 2 Rank FROM Currencies
) t
ORDER BY Rank, Currency