我们可以使用if条件更新表中的值吗?

时间:2017-02-08 11:28:25

标签: sql sql-server if-statement join sql-update

我有4张桌子。

enter image description here

标识符不同。因此,在表4中,我们有连接两个表的数据。但Table1与其他3个表中没有任何关系。

我必须验证表2和表3的计数是否匹配。在得到比较结果时,我需要使用Pass / Fail

来表示表1

例如:表2的计数等于表3.

2 个答案:

答案 0 :(得分:2)

使用JoinsIF EXISTS

UPDATE T1 SET checklist = 'SOMETHING'
FROM TABLE1 T1
INNER JOIN TABLE2 T2 ON T1.FIELDVALUE = T2.FIELDVALUE 
INNER JOIN TABLE3 T3 ON T1.FIELDVALUE = T3.FIELDVALUE 

OR

UPDATE TABLE1 SET checklist = 'SOMETHING'
WHERE EXISTS(SELECT 1 FROM TABLE2 WHERE TABLE1.FIELDVALUE  = TABLE2.FIELDVALUE)
AND EXISTS(SELECT 1 FROM TABLE3 WHERE TABLE1.FIELDVALUE  = TABLE3.FIELDVALUE)

更新:来自评论

enter image description here

IF EXISTS(
SELECT 1
FROM TABLE4 T4
INNER JOIN TABLE2 T2 ON T4.Identifier = T2.Identifier 
INNER JOIN TABLE3 T3 ON T4.Identifier_ = T3.Identifier2
AND T2.COUNT <> T3.COUNT
)
BEGIN
UPDATE TABLE1 SET RESULTS = 'Fail'
END
ELSE
BEGIN 
UPDATE TABLE1 SET RESULTS = 'Pass'
END

答案 1 :(得分:0)

new int[]{}.Any()

希望能够发挥作用