我有两个表如何根据联接集中的条件从表中删除记录?
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