我在删除SQL时遇到了一些麻烦.SQL Server不喜欢在where子句中有多个参数来删除行table_02(子查询是表1).任何有关这方面的帮助将非常感激.
谢谢.
DELETE FROM table_02
WHERE (col_1,col_2,col_3,col_4)
IN (
SELECT col_1,col_2,col_3,col_4
FROM table_01
GROUP BY
col_1,col_2,col_3,col_4
HAVING SUM(CASE WHEN col_1<6 THEN col_2*-1 ELSE col_2 END)=0
)
Run Code Online (Sandbox Code Playgroud)
你可以重写IN为EXISTS
DELETE
FROM table_02
WHERE EXISTS(SELECT *
FROM table_01
WHERE table_02.col_1 = table_01.col_1
AND table_02.col_2 = table_01.col_2
AND table_02.col_3 = table_01.col_3
AND table_02.col_4 = table_01.col_4
HAVING SUM(CASE
WHEN col_1 < 6 THEN col_2 * -1
ELSE col_2
END) = 0)
Run Code Online (Sandbox Code Playgroud)