Chu*_*aka 8 sql sql-server merge
如果我们有两个或多个具有相同列的表
表格1
Structure, Name, Active
1,A,1
Run Code Online (Sandbox Code Playgroud)
表2
Structure, Name, Active
2,B,0
Run Code Online (Sandbox Code Playgroud)
我们想将这两个表组合起来并将其保存为新表
新表
Structure, Name, Active
1,A,1
2,B,0
Run Code Online (Sandbox Code Playgroud)
这是代码
CREATE TABLE Amide_actives_decoys
(
Structure NVARCHAR(255),
Name NVARCHAR(255),
Active INT
)
GO
INSERT Amide_actives_decoys
FROM (
SELECT * FROM Amide_decoys
UNION
SELECT * FROM Amide_actives
)
Run Code Online (Sandbox Code Playgroud)
将显示以下错误消息
消息156,级别15,状态1,行10
关键字'FROM'附近的语法不正确.
如果我们使用同样的事情
SELECT * INTO Amide_actives_decoys
FROM (
SELECT * FROM Amide_decoys
UNION
SELECT * FROM Amide_actives
)
Run Code Online (Sandbox Code Playgroud)
以下是这个答案
错误消息将是
消息102,级别15,状态1,行5
'''附近的语法不正确.
任何大师都可以提供一些评论吗?谢谢!
此语法适用于不同的数据库:
INSERT INTO Amide_actives_decoys(Structure, Name, Active)
SELECT * FROM Amide_decoys
UNION
SELECT * FROM Amide_actives;
Run Code Online (Sandbox Code Playgroud)
在这种INSERT形式中,子查询的输出成为INSERT的输入值集.
请注意,SELECT语句子查询中表达式的数据类型必须与INSERT语句的目标表中的数据类型匹配.
子查询返回的所有行都将插入Amide_actives_decoys表中.
如果由于约束违规或数据类型冲突导致INSERT中的任何一行失败,则整个INSERT将失败并且不会插入任何行.
可以在INSERT语句中使用任何有效的子查询.