【问题标题】:I wish to insert into Table1, some data and some constants from table 2我希望将表 2 中的一些数据和一些常量插入表 1
【发布时间】:2021-02-16 17:52:25
【问题描述】:

下面是我正在使用的代码。 sellprice、type、BandID 和 IsPercent 是常量 我期待插入多行,因为有多个产品的描述 XYZ

    Insert into Table1 ([itemid],[SellingPrice],[Type],[BandID],[IsPercent]) 
    values
    ((select ID from Table2 where Description like '%XYZ%'),26.5,0,20,1);

但我收到错误“子查询返回超过 1 个值” 如何使用其他列值的常量从一个表中插入多个值,但不是全部?

【问题讨论】:

  • 语法是INSERT .. SELECT 而不是VALUES。 VALUES 指定具体值
  • @PanagiotisKanavos VALUES 是一种完全可以接受的格式,自 SQL Server 2008(甚至可能是 2005 年)起就已受支持。请参阅documnetation 的示例 A 和 B。
  • @Larnu VALUES 一直存在,不仅仅是从 2005 年开始,而且它从来不应该包含查询结果。当我发布评论时,额外的值被隐藏在右侧。无论如何,要让这个查询工作INSERT SELECT 是必需的。如果子查询仅返回单个值,则可以使用 VALUES 但这确实……不寻常
  • 问题是你的评论好像在说 VALUES 根本不是有效的语法,@PanagiotisKanavos ;这根本不是真的。 INSERT...VALUES 有效的语法,它只是不是 OP 应该使用的语法。
  • 似乎是一个与您的previous question 非常相似的问题。

标签: sql-server select sql-insert


【解决方案1】:

你可以试试这个方法

Insert into Table1 ([itemid],[SellingPrice],[Type],[BandID],[IsPercent]) 
select ID as itemid, 26.5 as SellingPrice,0 as Type,20 as BandID,1 as IsPercent 
from Table2 
where Description like '%XYZ%';

【讨论】:

  • 宾果游戏。感谢您的帮助。这样可以节省大量手动输入
猜你喜欢
  • 2014-02-08
  • 2013-06-15
  • 2014-09-09
  • 2020-05-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-09
  • 1970-01-01
相关资源
最近更新 更多