用一个结果汇总一行

时间:2014-09-04 07:22:49

标签: sql sql-server

我有一个表,其中包含多行中的以下值,我正在努力编写一个查询,该查询只返回一行汇总表列,如下所示。

我有什么想法可以得到以下结果?

状态
普通
普通
普通
关键
普通
警告
普通

结果是“严重”

状态
普通
普通
普通
普通
普通
普通
警告
普通

结果是“警告”

状态
普通
普通
普通
普通
普通
普通
普通

结果是“正常”

状态
普通
普通
普通
普通
关键
普通
警告
正常

结果是“严重”

1 个答案:

答案 0 :(得分:1)

你可以使用rownumber:

SELECT  Status
FROM    (
          SELECT   Status
          ,        ROW_NUMBER() OVER(ORDER BY CASE WHEN Status = 'Critical' THEN 1
                                                   WHEN Status = 'Warning' THEN 2
                                                   WHEN Status = 'Normal' THEN 3
                                                   ELSE 4
                                              END) RN
          FROM     Your_Table
        ) A
WHERE   A.RN = 1

您可能需要添加PARTITION BY,具体取决于您的其他要求。