首页 >数据库 >mysql教程 >如何在 SQL Server INSERT 期间处理子查询的多个结果?

如何在 SQL Server INSERT 期间处理子查询的多个结果?

Barbara Streisand
Barbara Streisand原创
2025-01-06 00:01:41942浏览

How to Handle Multiple Results from a Subquery During SQL Server INSERT?

解决具有多个结果的子查询值插入

您在 SQL Server 中有两个表:Article 和 Price。您想要使用子查询将某些 ID 从文章插入到价格中以选择 ID。但是,使用以下代码时,您会遇到“子查询有超过 1 个值”的错误:

INSERT INTO prices (group, id, price) 
VALUES (7, (select articleId from article WHERE name LIKE 'ABC%'), 1.50);

出现此问题的原因是子查询返回多个 ID,因为可能有多个文章与 'ABC% 匹配' 标准。在这种情况下,您需要按如下方式修改查询:

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

此修改后的查询在子查询旁边显式指定常量值(组:7,价格:1.50)以选择文章 ID。通过分隔常量值,您可以避免对每个 ID 进行子查询计算,从而解决多个结果值的问题。

以上是如何在 SQL Server INSERT 期间处理子查询的多个结果?的详细内容。更多信息请关注PHP中文网其他相关文章!

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