10

我正在编写一个 SQL 查询来获取 Report Builder 3.0 中报表的参数列表。我需要在结果中添加一个值为“All”的额外行,如下所示:

SELECT 'All'
UNION
SELECT DISTINCT    Manager
FROM               IS_Projects

这很好用,但是查询将按字母顺序排序的行返回给我,我实际上希望“全部”始终出现在顶部(即作为第一行返回)。其余结果可以按字母顺序排序。

我已经看到有关向表中添加排序顺序列的建议,但我对 SQL 很陌生,不知道如何执行此操作。

感谢您的任何建议!

4

2 回答 2

23

单程;

SELECT Name FROM (
    SELECT 'All'       as Name
    UNION 
    SELECT DISTINCT    Manager
    FROM               IS_Projects
) T
ORDER BY CASE Name WHEN 'All' THEN 0 ELSE 1 END, Name
于 2012-04-16T15:01:54.300 回答
3

这是一种方式:

SELECT Manager
FROM (SELECT 'All' Manager, 1 Order
      UNION ALL
      SELECT DISTINCT Manager, 2 Order
      FROM IS_Projects) A
ORDER BY Order, Manager
于 2012-04-16T14:59:59.567 回答