[英]A SELECT statement as a subquery in an INSERT INTO statement
以下查询是否会插入与子查询结果集中的行数一样多的行? 如果不是,我怎样才能插入 n 行,其中 n 是子查询结果集中的行数?
INSERT INTO A (x, y)
VALUES (@x, SELECT B.z FROM B)
@x=5
不,它最多只能插入 1 行。 如果要插入多行,则需要类似
INSERT INTO A (x,y) SELECT @X, B.z FROM b
请注意,没有values
子句,@x 已集成到SELECT
查询中
如果您想获取所有值,可以将其修改为:
INSERT INTO A (x, y)
SELECT @x, B.z
FROM B
摆脱 VALUES 子句。 您的查询变为:
INSERT INTO A (x, y) SELECT @X, B.z FROM B
试试这个方法。
INSERT INTO A
(x, y)
SELECT @x, B.z
FROM B
DECLARE @X int = 5
INSERT INTO A
(
x,
y
)
SELECT
@X,
B.Z
FROM B
这是行不通的。 您犯了与在多行查询中使用聚合 function 相同的错误
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.