将多个SQL UPDATE查询与单个WHERE语句组合在一起

时间:2014-11-20 09:28:20

标签: sql-server

我正在运行一个需要多个SQL查询的程序,它们的结构非常相似。我想使用IFF语句将它们组合成一个查询但不知何故不起作用。以下示例应说明我要做的事情。非常感谢任何帮助。

QUERY 1 ---

UPDATE Table1, Table2
SET Table2.Column1 = Table1.Column5
WHERE Table1.Column1 = 'A' 
AND Table1.Column2 = 'B';

QUERY 2 ---

UPDATE Table1, Table2
SET Table2.Column1 = Table1.Column6
WHERE Table1.Column1 = 'A' AND
Table1.Column2 = 'C';

ATTEMPTED QUERY ---

UPDATE Table1, Table2
SET Table2.Column1 = Iif(Table1.Column2 = 'B', Table1.Column5, 'X'), 
    Tabl2.Column2 = Iif(Table1.column2 = 'C', Table1.Column6, 'X')
WHERE Table1.Column1 = 'A';

1 个答案:

答案 0 :(得分:1)

我认为根据您的查询尝试,您实际需要查询的是:

UPDATE T2
SET T2.Column1 = CASE WHEN T1.Column2 = 'B' THEN T1.Column5 ELSE 'X' END,
    T2.Column2 = CASE WHEN T1.Column2 = 'C' THEN T1.Column6 ELSE 'X' END
FROM Table2 T2, Table1 T1
WHERE T1.Column1 = 'A'