我正在将字段迁移到新表。新表有三个字段。我试过的是
INSERT INTO foo VALUES ('', (SELECT bar FROM baz GROUP BY bar), '');
由于选择产生多行,导致错误。
这样做的正确方法是什么?
答案 0 :(得分:18)
如果我理解正确,你需要类似的东西:
INSERT INTO foo (col1name, col2name, col3name)
SELECT '', bar, ''
FROM baz
GROUP BY bar
答案 1 :(得分:6)
或者,如果我正确理解你,并且你想在新表中为旧表中的每个不同的条形值输入一个条目,我认为这会使它更清晰一点。
INSERT INTO foo (col2name) SELECT DISTINCT bar FROM baz
执行计划和表现应该类似
答案 2 :(得分:4)
您可以尝试:
INSERT INTO foo
SELECT '',bar,'' FROM baz GROUP BY bar
答案 3 :(得分:4)
INSERT INTO foo (fieldName1,fieldName2,fieldName3)
SELECT '',bar,'' FROM baz GROUP BY bar
答案 4 :(得分:4)
与Michael的回答一致,另一种可能性是
INSERT INTO foo (col2name) SELECT bar FROM baz GROUP BY bar
其中col1和col3定义为默认为空字符串。