我有以下几条记录(USER_1,USER_2,USER_3,USER_4,USER_5,USER_6是列)
USER_1 USER_2 USER_3 USER_4 USER_5 USER_6 ABC01 12-Sept A 100 12345 ABC02 12-Sept A 200 12346 ABC03 12-Sept A 300 12347 ABC09 12-Sept A 250 12369 Record not present on side B ABC01 12-Sept B 100 12345 ABC02 12-Sept B 200 12346 ABC03 12-Sept B 300 12347 ABC10 12-Sept B 350 12222 Record not present on side A
解释
如果user_3为' A'我们根据USER_3
区分记录。然后,如果Side A,
为user_3
,则会将其视为'B'
,然后将其视为“B'”。现在,如果你看到{A}和B都存在ABC01, ABC02, ABC03
,但是如果你看到ABC09
它只出现在A面而不是B面。在这种情况下,我想要USER_6
要使用字符串'Record not present on side B'
进行更新。我不知道怎么写一个可以做到这一点的循环。如有任何帮助,将不胜感激。非常感谢
答案 0 :(得分:2)
您可以使用相关子查询执行此操作:
update table t
set user_6 = (select (case when min(user_3) <> max(user_3) then NULL
when min(user_3) = 'A' then 'Record not present on side B'
else 'Record not present on side A'
end)
from table t2
where t2.user_1 = t.user_1
);