我有两张表格如下:
ObjName
和RptName
是一个复合键。
表1:
ObjName | RptName | FileName | Success
----------------------------------------
obj1 | rept1 | file1.csv| NULL
表2:
FileName | Success
-------------------
file1.csv | 1
file1.csv | 0
file1.csv | 0
表2可以有多个条目,如上所述。
必须在FileName
上加入表格。
我想根据以下条件更新表1的Success
列:
如果结果集中的任何条目(在连接表之后得到)的Success
值为" 1"然后表1的SUCCESS
列应更新为" 1"。否则应将其设置为" 0"。
请帮忙。
答案 0 :(得分:0)
试试这个:
UPDATE a
SET a.Success = COALESCE(b.Success, 0)
FROM table1 a
LEFT OUTER JOIN table2 b ON a.FileName = b.FileName AND b.Success = 1;
答案 1 :(得分:0)
update t1
set success =
case
when exists (select * from t2 where FileName = t1.FileName and Success = 1) then 1
else 0
end
答案 2 :(得分:0)
是的,从加入你可以轻松实现它请尝试这样做,希望这将解决您的问题:)
UPDATE
table1
SET
Sucess = 1
WHERE
EXISTS
(
SELECT
1
FROM
TABLE2 t2
LEFT JOIN TABLE1 t1 ON t1.FileNmae = t2.FileName
AND t2.successvalue = 1
)