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

标签 sql tsql reportbuilder

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

SELECT 'All'
UNION
SELECT DISTINCT    Manager
FROM               IS_Projects

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

我已经看到了向表中添加排序顺序列的建议,但我对 SQL 很陌生,不知道如何做到这一点。

感谢您的任何建议!

最佳答案

单程;

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

关于sql - 如何将特定行保留为查询 (T-SQL) 的第一个结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10176538/

相关文章:

c# - 使用 C# 处理固定宽度的源文件

sql - 带有 CASE 语句的内部连接在 SQL SERVER 中不起作用

sql - 为什么 SQL 将 & 显示为 &?

tsql - Pyspark 中的多个 WHEN 条件实现

sql-server - 如何在 SQL Server Report Builder 中创建一个根据当前日期自动更新的下拉参数?

php - 数据库分组需要所有其他列

mysql - 选择查询的异常 MySQL 行为

mysql - 带参数的数据集查询在 Report Builder 中不起作用

mysql - 如何在 SQL Server Report Builder 2014 中对值进行分组

sql - 什么时候需要对主键和外键施加约束?