通过检查另一列中的多个值来在列中插入值

时间:2014-01-15 09:21:41

标签: sql case

我有一张表格如下:

enter image description here

因为你可以看到我的第4级列是空的所以我需要sql查询以获得“否”如果任何特定样式(1401,1201)已经死为“0”。 级别1按样式和名称分组,而级别4仅按样式分组。 我得到了1级的答案但是在第4级挣扎 我尝试了类似的方法4级也作为1级但没有得到任何想要的答案

我想要的答案是,对于1201,级别4中的所有值都应该是,而对于1401,它应该是否定的 谢谢。

1 个答案:

答案 0 :(得分:0)

您可以为每种样式找到dead的最小值。假设您的表名为test

with cte as
(
select style, min(cast(dead as int)) as dead
from test
group by style
)
update test
set level4 = case when cte.dead = 1 then 'yes' else 'no' end
from test inner join cte on cte.style = test.style

我假设您的dead标志位,这就是需要转换为int的原因。