读取两列,根据条件比较第二列值,将最终结果写入新表
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了读取两列,根据条件比较第二列值,将最终结果写入新表相关的知识,希望对你有一定的参考价值。
我有一张桌子,Groups
,有两列,Group_Name
和Criticality
。
Group_Name Severity
-------------------
Group 1 LOW
Group 2 MEDIUM
Group 2 LOW
Group 3 LOW
Group 3 HIGH
Group 3 MEDIUM
Group 4 LOW
Group 4 MEDIUM
Group 4 LOW
Group 4 MEDIUM
我现在想要创建一个具有最终严重性详细信息的表。喜欢
Group_Name Final_Severity
-------------------
Group 1 LOW
Group 2 MEDIUM
Group 3 HIGH
Group 4 MEDIUM
比较条件是检查为每个组分配的最高严重性类型是什么 - L <M <H。
例如,考虑到Group 3
,因为分配了3种严重性类型,比较应该返回H
作为所选组Group 3
的最终严重性。
最后将所有这些值写入a(最终)表中,如上所述。
我怎么能在SQL Server中执行此操作?
答案
试试这个,这个查询会给你想要的结果:
select Group_name, Severity from (
select Group_name, Severity,
ROW_NUMBER() over (partition by group_name order by [level] desc) [rn]
from MY_TABLE [t] join
--here we assign numeric values to severities to make it comparable
(values ('LOW', 1),('MEDIUM', 2),('HIGH', 3)) as Severity([name], [level]) on [t].Severity = [Severity].name
) a where rn = 1
以上是关于读取两列,根据条件比较第二列值,将最终结果写入新表的主要内容,如果未能解决你的问题,请参考以下文章
Azure 表存储:是不是可以使用与添加两列值的结果进行比较的查询条件?