插入查询以同时具有选择值和值作为值

时间:2018-10-17 10:44:49

标签: sql tsql select sql-insert

我知道您可以使用select语句来提供所有值,但是它不会让我使用它来只提供其中一个值,然后使用另一个项来提供下一个值。

INSERT INTO table
([product code], [product description])
VALUES
(
   (SELECT [code] FROM table GROUP BY [code])
   ,'a description'
)

但是SQL Server告诉我

  

子查询返回的值超过1个

现在,我已经通过使该选择语句成为视图并加入它来解决它。 不需要查看会很好。

3 个答案:

答案 0 :(得分:2)

您可以将SELECT语句与INSERT INTO . . .语句一起使用:

INSERT INTO table ([product code], [product description])
     SELECT [code], 'a description'  
     FROM table 
     GROUP BY [code];

答案 1 :(得分:0)

您只想要INSERT . . . SELECT

INSERT INTO table ([product code], [product description])
    SELECT [code], 'a description'
    FROM table
    GROUP BY [code];

答案 2 :(得分:0)

使用VALUES进行插入时,一次只能插入一行,但是,查询

  

'从表GROUP BY [代码]中选择[代码]'

返回多行,因此查询失败。如果要使用VALUES进行插入,则需要遍历查询中的每一行并分别插入,但这是不必要且效率低下的。正如其他人已经指出的那样,简单地使用以下代码会更有效:

INSERT INTO table ([product code], [product description])
     SELECT [code], 'a description'  
     FROM table 
     GROUP BY [code];