gpt4 book ai didi

sql-server - T-SQL - 仅当行尚不存在时才在表中插入行

转载 作者:行者123 更新时间:2023-12-02 22:55:19 25 4
gpt4 key购买 nike

我有如下所示的 T-SQL。 @Results 是一个表变量,'CTE' 是一个公共(public)表表达式。如果我要插入的 SubId 尚未插入到表中,我只想将行插入到 @Results 表中。下面显示的代码不能完成这项工作,我不确定为什么。谁能看出问题所在吗?

Insert Into @Results (
Cell,
CellSettings,
RecipeInstanceId,
BiasStartTime,
SubId
RuleInstanceId)
Select
Cell,
CellSettings,
RecipeInstanceId,
BiasStartTime,
SubId,
RuleInstanceId
From CTE
Where CTE.SubId NOT IN (Select SubId From @Results)

最佳答案

您需要先检查是否存在:

IF NOT EXISTS(SELECT * FROM @Results WHERE SubId = .......)
INSERT INTO @Results (Cell, CellSettings, RecipeInstanceId,
BiasStartTime, SubId, RuleInstanceId)
SELECT
Cell, CellSettings, RecipeInstanceId,
BiasStartTime, SubId, RuleInstanceId
FROM CTE

也许您可以将此要求(仅返回那些尚不存在的行)放入您的 CTE 中,这样您就不必再次过滤 CTE 的输出...

关于sql-server - T-SQL - 仅当行尚不存在时才在表中插入行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6280809/

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