SQL插入记录如果不存在
发布时间:2020-05-23 05:55:43 所属栏目:MsSql 来源:互联网
导读:我想要做的是将表与另一个临时表进行比较,如果记录尚未存在,请将其插入表中.我的问题是IF NOT EXIST似乎不正确.如果我把代码分开,我遇到的问题是: 返回29结果: SELECT * from NO_STOCK INNER JOIN #no_stock ON NO_STOCK.PRODUCT_CODE = #no_stock.PRODUCT_
|
我想要做的是将表与另一个临时表进行比较,如果记录尚未存在,请将其插入表中.我的问题是IF NOT EXIST似乎不正确.如果我把代码分开,我遇到的问题是: 返回29结果: SELECT * from NO_STOCK INNER JOIN #no_stock ON NO_STOCK.PRODUCT_CODE = #no_stock.PRODUCT_CODE WHERE NO_STOCK.PRODUCT_CODE = #no_stock.PRODUCT_CODE. 这没有返回任何结果(我希望这会返回34): SELECT PRODUCT_CODE
FROM #no_stock
WHERE NOT EXISTS
(SELECT * from NO_STOCK INNER JOIN #no_stock
ON NO_STOCK.PRODUCT_CODE = #no_stock.PRODUCT_CODE
WHERE NO_STOCK.PRODUCT_CODE = #no_stock.PRODUCT_CODE)
这返回63: SELECT PRODUCT_CODE
FROM #no_stock
WHERE EXISTS
(SELECT * from NO_STOCK INNER JOIN #no_stock
ON NO_STOCK.PRODUCT_CODE = #no_stock.PRODUCT_CODE
WHERE NO_STOCK.PRODUCT_CODE = #no_stock.PRODUCT_CODE)
PS.使用SQL Server 2008 R2 解决方法在子查询中废弃内部联接.您应该尝试的是以下内容: SELECT PRODUCT_CODE FROM #no_stock
WHERE NOT EXISTS (SELECT * from NO_STOCK
WHERE NO_STOCK.PRODUCT_CODE = #no_stock.PRODUCT_CODE)
这里不需要内连接,因为外部查询中引用了#no_stock表. 您的其他查询也是如此: SELECT PRODUCT_CODE FROM #no_stock
WHERE EXISTS (SELECT * from NO_STOCK
WHERE NO_STOCK.PRODUCT_CODE = #no_stock.PRODUCT_CODE)
试试这些,看看它们是否有效. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
