gpt4 book ai didi

SQL INSERT INTO WITH SELECT 查询

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

没有 SQL 经验,我希望有人能帮助我。

我有一个空的临时表,以及一个包含信息的表。

我的查询大纲如下:

CREATE TABLE [#Temp] (ID Int, Field1 Varchar)

INSERT INTO [#Temp]
SELECT ID, Field1
FROM [Other_table]
WHERE ID IN (ID1, ID2, ID3...)

因此,我将一大堆 ID 传递给查询,并且该 ID 对应于 Other_table 中的 ID,它必须使用此信息填充临时表。

是否可以在同一查询中保存与其他地方(例如另一个临时表)不匹配的 ID?或者在同一个临时表中,只是 Field1 = NULL?

我需要对不匹配的 ID 进行额外的工作,因此我需要在某个地方随时访问它们。我希望在这个查询中完成所有这一切,如果这是最快的方法的话。

编辑:

感谢您的帮助。

抱歉,我现在发现我的问题并不完全清楚。

如果 Other_table 包含 ID 1 - 1000,并且我传入 ID 999、1000 和 1001,我希望临时表包含 999 和 1000 的信息,然后还有一个 ID = 1001、Field1 = NULL 的条目。我不希望在 Field1 = NULL 的情况下返回 ID 1 - 998。

最佳答案

每个插入语句只能使用一个目标表。因此,将 field1 保留为 null 似乎是最简单的方法:

INSERT INTO [#Temp]
SELECT ID, CASE WHEN ID IN (ID1, ID2, ID3...) THEN Field1 END
FROM [Other_table]

case 语句将返回 null id,该 ID 不在列表中。

更新
更新问题后,我会推荐以下内容:首先,将您在 in 运算符中使用的 id 列表插入到另一个临时表中:

create table #tempIDs (id int)
insert into #tempIDs values(id1), (id2), (id3), ....

然后只需使用简单的左连接:

INSERT INTO [#Temp]
SELECT t1.ID, Field1
FROM #tempIDs t1
LEFT JOIN [Other_table] t2 ON(t1.id = t2.id)

关于SQL INSERT INTO WITH SELECT 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30911083/

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