如何将特定行保留为查询的第一个结果(T-SQL)?
我正在编写一个SQL查询,以获取报表生成器3.0中报表的参数列表。我需要在结果中添加一个额外的值为“All”的行,如下所示:如何将特定行保留为查询的第一个结果(T-SQL)?,sql,tsql,reportbuilder,Sql,Tsql,Reportbuilder,我正在编写一个SQL查询,以获取报表生成器3.0中报表的参数列表。我需要在结果中添加一个额外的值为“All”的行,如下所示: SELECT 'All' UNION SELECT DISTINCT Manager FROM IS_Projects 这很好,但是查询返回按字母顺序排序的行,实际上我希望“All”始终显示在顶部(即返回第一行)。其余结果可以按字母顺序排序 我看到过关于向表中添加排序顺序列的建议,但我对SQL非常陌生,不知道如何做到这一点 谢谢你的建议
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子句中。这只是打开了大门。这是否相当有效?就我个人而言,我不希望像上述这样的小事会产生可测量的影响。