首页 >数据库 >mysql教程 >如何从非标量子查询将多行插入 SQL Server 表?

如何从非标量子查询将多行插入 SQL Server 表?

Mary-Kate Olsen
Mary-Kate Olsen原创
2025-01-05 14:11:40714浏览

How to Insert Multiple Rows into a SQL Server Table from a Non-Scalar Subquery?

从非标量子查询将值插入到表中

在 SQL Server 中,根据返回的子查询将值插入到表中多个结果可能具有挑战性。考虑以下场景:

您有两个表:

  • 文章
  • 价格

您想要将行插入到prices 表,其中包含 groupidprice 列的特定值,其中 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 语句中为 groupprice 列分配常量值:

insert into prices (group, id, price)
select 
    7, articleId, 1.50
from article where name like 'ABC%';

在此语句中,子查询返回与指定名称条件匹配的文章 ID,并且常量值 7 和 1.50 显式分配给分别是价格列。

以上是如何从非标量子查询将多行插入 SQL Server 表?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn