我知道您可以使用select语句来提供所有值,但是它不会让我使用它来只提供其中一个值,然后使用另一个项来提供下一个值。
INSERT INTO table
([product code], [product description])
VALUES
(
(SELECT [code] FROM table GROUP BY [code])
,'a description'
)
但是SQL Server告诉我
子查询返回的值超过1个
现在,我已经通过使该选择语句成为视图并加入它来解决它。 不需要查看会很好。
答案 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];