我有两张桌子
Table : 1, Name : NdcAwp, Columns-Ndc, AwpUnitCost
Table : 2, Name : InvalidNdcs, Column-Ndc
现在,我想从Table中删除那些记录:1,其AwpUnitCost是< = 0,AwpUnitCost是NULL,并且它没有来自Table的相同Ndc:2。
答案 0 :(得分:1)
这可能符合您的要求。该语句从您的第一个表中删除,其中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)
答案 1 :(得分:1)
我相信这就是你想要的:
DELETE FROM NdcAwp
WHERE (AwpUnitCost <= 0
OR AwpUnitCost IS NULL)
AND Ndc NOT IN
(
SELECT Ndc
FROM InvalidNdcs
)