規則:如果在Yearquarter中有多個行(3,4),status ='a'和type = 1且status ='a'保持類型= 1,狀態=「A」 yearquarter爲employerid,其餘應刪除按規則刪除表中的記錄
內這是表EMP
EMPID YEARQUARTER TYPE STATUS
105 20021 3 A
105 20021 1 A
106 20091 4 A
106 20091 1 A
107 20101 4 A
107 20101 1 B
107 20101 2 A
108 20111 3 A
108 20111 1 A
108 20111 2 B
109 20131 3 A
109 20131 1 A
109 20131 1 A
這個刪除EMP表應留有後:
EMPID YEARQUARTER TYPE STATUS
105 20021 1 A
106 20091 1 A
107 20101 4 A
107 20101 1 B
107 20101 2 A
108 20111 1 A
108 20111 2 B
109 20131 1 A
109 20131 1 A
我試試要使用這個語句,但它沒有得到想要的結果。
DELETE e1
FROM
EMP e1
WHERE
EXISTS (
SELECT
*
FROM
EMP e2
WHERE
e1.EMPID = e2.EMPID
AND e1.yearquarter = e2.yearquarter
AND e2.[status] = 'A'
AND E2.[type] IN (3,4)
)
執行此操作後,表中的所有行都被刪除。
不需要像這樣使用大寫鎖定。 – jarlh