2010-09-21 115 views
1

我有一個表格,包含以下字段。我的要求是當 時將表中的記錄刪除1.標記設置爲'否' 2.對於標題,在一個記錄中如果標記設置爲「否」,並且在另一記錄中如果設置爲'是'。刪除這兩個記錄。例如TH-123,在第1條記錄中,標誌設置爲「否」,並且在第4條記錄標誌設置爲「是」,刪除兩條記錄。 3.對於標題,如果該標誌設置爲「否」,則在一個記錄中,如果標題設置爲「(空格)」,則在另一個記錄中。刪除這兩個記錄。例如TH-344。刪除這兩個記錄。查詢刪除記錄

Title      Flag  

    TH-123      No 
    TH-344       
    TH-543      No 
    TH-123      Yes 
    Th-344      No 
    Th-098      Yes 
    Th-876      Yes 
    Th-098      Yes 
    Th-512      No 

所以現在我期待一個結果,以下記錄。

Th-098      Yes 
    Th-876      Yes 
    Th-098      Yes 

我已經完成了2個查詢。

update temp1 set [flag] = 'No' WHERE Title IN 
(SELECT Title FROM temp1 where [flag] = 'No') 

delete from temp1 where [flag] = 'No' 

是否可以使用單個查詢。如果是的話,請讓我知道或任何其他更好的方法..

回答

4
delete from temp1 
where 
    Title IN 
     (SELECT Title FROM temp1 where [flag] = 'No') 
+1

Thanku。查詢很聰明。 – satya 2010-09-21 12:17:10

1

這應該工作:

delete from t1 
from temp1 t1 
    inner join temp2 t2 on t1.Title = t2.Title 
where t2.[flag] = 'No'