题
我要完成以下的东西:
Select DISTINCT(tableA.column) INTO tableB.column FROM tableA
在目标将是选择一个不同的数据集,然后该数据插入到一个新的表的特定列。
解决方案
您是非常有。
SELECT DISTINCT column INTO tableB FROM tableA
这将插入到任何列(S)在选择列表中指定,所以你会需要你的别名选择值,如果你需要插入不在tableB
tableA
列。
其他提示
SELECT column INTO tableB FROM tableA
选择,因为它插入新的记录到它INTO将创建一个表。如果这不是你想要的(如果tableB的已经存在),那么你需要做这样的事情:
INSERT INTO tableB (
column
)
SELECT DISTINCT
column
FROM tableA
请记住,如果表B有只有一个,你需要列出你会被插入到(就像我在我的例子做了)的列多列。
尝试使用以下...
INSERT INTO tableB (column)
Select DISTINCT(tableA.column)
FROM tableA
的目标将是选择不同的数据组,然后将该数据插入到一个新的表的特定列。
我不知道是什么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.