从非标量子查询将值插入到表中
在 SQL Server 中,根据返回的子查询将值插入到表中多个结果可能具有挑战性。考虑以下场景:
您有两个表:
您想要将行插入到prices 表,其中包含 group、id 和 price 列的特定值,其中 id 值为派生自从 article 中选择匹配 ID 的子查询
不正确的方法:
尝试使用具有多个结果的子查询作为 INSERT 语句中某一列的值可能会导致错误,如下所示通过以下错误的 SQL 语句证明:
INSERT INTO prices (group, id, price) VALUES (7, (select articleId from article WHERE name LIKE 'ABC%'), 1.50);
正确解决方案:
要解决此问题,请使用 SELECT 语句检索所需的值并将其插入目标表中。直接在 SELECT 语句中为 group 和 price 列分配常量值:
insert into prices (group, id, price) select 7, articleId, 1.50 from article where name like 'ABC%';
在此语句中,子查询返回与指定名称条件匹配的文章 ID,并且常量值 7 和 1.50 显式分配给分别是组和价格列。
以上是如何从非标量子查询将多行插入 SQL Server 表?的详细内容。更多信息请关注PHP中文网其他相关文章!