如何根据条件为其他列赋值 像
假设有id 1 3 5
和数字列,
如果1
3
和101
sid id number
101 1 4
101 3 4
101 2 4
sid id number
102 1 4
103 3 12
如果sid存在1和3,则应指定值4
答案 0 :(得分:0)
你可以使用它。
ivalue
结果:
DECLARE @T TABLE (sid INT, id INT)
INSERT INTO @T VALUES
(101, 1 ),
(101, 3 ),
(101, 2 ),
(102, 1 ),
(103, 3 )
SELECT T1.*, T2.number FROM @T T1
INNER JOIN (SELECT sid, ( MIN(id) * 4 ) number
FROM @T GROUP BY sid) T2 ON T1.sid = T2.sid
答案 1 :(得分:0)
如果sid同时具有id 1和3,则应将4分配给所有行
否则
如果id为1则应分配4
如果id为3,则应将12分配给数字
在标准SQL中,您可以使用分析函数查看sid的所有记录,然后决定显示哪个数字。
select
sid,
id,
case when count(case when id = 1 then 1 end) over (partition by sid) > 0
and count(case when id = 3 then 1 end) over (partition by sid) > 0 then 4
when id = 1 then 4
when id = 3 then 12
end as number
from mytable;