我想完成以下任务:
Select DISTINCT(tableA.column) INTO tableB.column FROM tableA
目标是选择一个不同的数据集,然后将该数据插入到新表的特定列中。
答案 0 :(得分:8)
SELECT column INTO tableB FROM tableA
SELECT INTO将在其中插入新记录时创建一个表。如果那不是你想要的(如果tableB已经存在),那么你需要做这样的事情:
INSERT INTO tableB (
column
)
SELECT DISTINCT
column
FROM tableA
请记住,如果tableb有更多的列只是那个,你需要列出你要插入的列(就像我在我的例子中所做的那样)。
答案 1 :(得分:4)
你几乎就在那里。
SELECT DISTINCT column INTO tableB FROM tableA
它将插入到选择列表中指定的任何列中,因此如果需要插入tableB
中不在{{1}的列中,则需要为选择值设置别名}}
答案 2 :(得分:2)
尝试以下方法......
INSERT INTO tableB (column)
Select DISTINCT(tableA.column)
FROM tableA
答案 3 :(得分:0)
目标是选择一个不同的数据集,然后将该数据插入到新表的特定列中。
我不知道tableB的架构是什么......如果表B已经存在并且列上没有唯一约束,你可以像其他人在这里建议的那样....
INSERT INTO tableB (column)Select DISTINCT(tableA.column)FROM tableA
但如果您对表B有一个唯一约束并且它已经存在,那么您必须排除表B中已有的那些值...
INSERT INTO tableB (column)
Select DISTINCT(tableA.column)
FROM tableA
WHERE tableA.column NOT IN (SELECT /* NOTE */ tableB.column FROM tableB)
-- NOTE: Remember if there is a unique constraint you don't need the more
-- costly form of a "SELECT DISTICT" in this subquery against tableB
-- This could be done in a number of different ways - this is just
-- one version. Best version will depend on size of data in each table,
-- indexes available, etc. Always prototype different ways and measure perf.