我正在运行一个需要多个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';
答案 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'