我有兩個表如何根據聯接集中的條件從表中刪除記錄?
Table : 1, Name : NdcAwp, Columns-Ndc, AwpUnitCost
Table : 2, Name : InvalidNdcs, Column-Ndc
現在,我想從表中刪除這些記錄:1,其AwpUnitCost是< = 0,AwpUnitCost IS NULL,它不會從表具有相同的ndc的:2
我有兩個表如何根據聯接集中的條件從表中刪除記錄?
Table : 1, Name : NdcAwp, Columns-Ndc, AwpUnitCost
Table : 2, Name : InvalidNdcs, Column-Ndc
現在,我想從表中刪除這些記錄:1,其AwpUnitCost是< = 0,AwpUnitCost IS NULL,它不會從表具有相同的ndc的:2
我相信這是你想要什麼:
DELETE FROM NdcAwp
WHERE (AwpUnitCost <= 0
OR AwpUnitCost IS NULL)
AND Ndc NOT IN
(
SELECT Ndc
FROM InvalidNdcs
)
非常感謝您的幫助。萬分感激。 – User7354632781 2010-08-19 21:08:18
這可能會做你的要求。該語句從第一個表中刪除,其中AwpUnitCost小於或等於0. COALESCE
將空值更改爲0,因此具有空AwpUnitCost的行將包含在刪除中。
NOT IN
子句包含NdcAwp中不在InvalidNdcs中的行,基於Ndc值。
DELETE
FROM NdcAwp
WHERE COALESCE(AwpUnitCost, 0) <= 0
AND Ndc NOT IN (SELECT Ndc FROM InvalidNdcs)
非常感謝您的幫助。萬分感激。 – User7354632781 2010-08-19 21:05:34
認爲你可能需要澄清一點。你加入名字上的表? – 2010-08-19 20:58:19
如果您編輯此標題以獲得更具描述性的標題,您將有更好的機會獲得答案。 – 2010-08-19 21:02:16