如何将特定行保留为查询的第一个结果(T-SQL)?

如何将特定行保留为查询的第一个结果(T-SQL)?,sql,tsql,reportbuilder,Sql,Tsql,Reportbuilder,我正在编写一个SQL查询,以获取报表生成器3.0中报表的参数列表。我需要在结果中添加一个额外的值为“All”的行,如下所示: SELECT 'All' UNION SELECT DISTINCT Manager FROM IS_Projects 这很好,但是查询返回按字母顺序排序的行,实际上我希望“All”始终显示在顶部(即返回第一行)。其余结果可以按字母顺序排序 我看到过关于向表中添加排序顺序列的建议,但我对SQL非常陌生,不知道如何做到这一点 谢谢你的建议

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

SELECT 'All'
UNION
SELECT DISTINCT    Manager
FROM               IS_Projects
这很好,但是查询返回按字母顺序排序的行,实际上我希望“All”始终显示在顶部(即返回第一行)。其余结果可以按字母顺序排序

我看到过关于向表中添加排序顺序列的建议,但我对SQL非常陌生,不知道如何做到这一点

谢谢你的建议

这是一种方式:

SELECT Manager
FROM (SELECT 'All' Manager, 1 Order
      UNION ALL
      SELECT DISTINCT Manager, 2 Order
      FROM IS_Projects) A
ORDER BY Order, Manager
单向

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

这取决于报表本身,所以我实际上不是这样填充表的。谢谢你的提示!啊……当我重新阅读问题时,我删除了我的评论,意识到这是为了一份报告!也看到了下面简洁的答案,并且认为我的评论不再必要了…太棒了-不知道你可以把案例陈述放在ORDERBY子句中。这只是打开了大门。这是否相当有效?就我个人而言,我不希望像上述这样的小事会产生可测量的影响。