我有一个表,其中包含多行中的以下值,我正在努力编写一个查询,该查询只返回一行汇总表列,如下所示。
我有什么想法可以得到以下结果?
状态
普通
普通
普通
关键
普通
警告
普通
结果是“严重”
的状态
普通
普通
普通
普通
普通
普通
警告
普通
结果是“警告”
的状态
普通
普通
普通
普通
普通
普通
普通
结果是“正常”
的状态
普通
普通
普通
普通
关键
普通
警告
正常
结果是“严重”
答案 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
,具体取决于您的其他要求。