INSERT当多个值不存在时

时间:2016-08-22 22:47:22

标签: sql sql-server sql-server-2012

我使用的是SQL Server 2012,使用的代码工作,但我知道它不是正确的这样做的方法。

我尝试仅在值尚未存在时向表中添加行,而是从两个不同的列添加行。

INSERT INTO #TEMP_Final
SELECT
a.ClaimNbr
,a.DisputeNbr
,a.DisputeAmt
,a.CardAcctNbr
,b.CreditAmt
,b.CreditRefNbr
FROM #TEMP_Disputes a
    JOIN #TEMP_Credits b
    ON a.CardAcctNbr = b.CardAcctNbr
    AND a.DisputeAmt = b.CreditAmt * -1
    AND a.DisputeRowNbr = b.CreditRowNbr
WHERE a.DisputeNbr NOT IN (SELECT DisputeNbr FROM #TEMP_Final)
AND b.CreditRefNbr NOT IN (SELECT CreditRefNbr FROM #TEMP_Final)

是否有更合适的方法来获得相同的结果?

感谢。

1 个答案:

答案 0 :(得分:0)

使用NOT EXIST子句......您可以避免使用NOT IN查询。

def moveZeroes(self, nums):
    nums.sort(key=lambda x: x == 0)
    # Or more efficiently but obscurely:
    # nums.sort(key=(0).__eq__)
    # Or with an operator import to get speed with less obscurity:
    # nums.sort(key=operator.not_)