gpt4 book ai didi

tsql - 如果行不存在,则sql条件插入

转载 作者:行者123 更新时间:2023-12-03 22:22:47 24 4
gpt4 key购买 nike

我正在创建一个 sproc,它将行插入到“暂存”表中,并插入到 + 子查询中,如下所示:

INSERT INTO myStagingTable
SELECT col1, col2, col3
FROM myRealTable

我需要以某种方式在那里放置一个条件来确定来自 col1 的值是否已经存在于 myStagingTable 中,然后不要插入它,只需从 myRealTable 跳过该行。

这可能吗?如果是这样,我将如何构建它?

TIA

最佳答案

INSERT
INTO myStagingTable
SELECT col1, col2, col3
FROM myRealTable rt
WHERE NOT EXISTS
(
SELECT rt.col1, rt.col2, rt.col3
INTERSECT
SELECT col1, col2, col3
FROM myStagingTable
)

这将处理所有重复项(包括 NULL )

请注意,将插入来自真实表的重复项是任何。说如果真正的表包含
1 1 1
1 1 1

并且临时表包含
2 2 2

, 两条记录都带有 1, 1, 1将被插入。

如果要消除插入时的重复项(以便仅插入 1, 1, 1 的一个实例),请使用以下命令:
INSERT
INTO myStagingTable
SELECT col1, col2, col3
FROM myRealTable
EXCEPT
SELECT col1, col2, col3
FROM myStagingTable

关于tsql - 如果行不存在,则sql条件插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2290792/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com