【发布时间】:2016-01-28 04:14:43
【问题描述】:
我有一个总共有 10 列的表,我需要抓取其中的 6 列并将它们插入到我的新表中,但前提是其中一列是唯一的。
我明白:
INSERT INTO table_1(col1, col2, col3)
SELECT DISTINCT colA, colB, colC
FROM table_2;
将为我提供 A、B、C 的组合唯一的行,但我只想插入 A 唯一的位置以及该行其他列中关联的数据。我找到了 WHERE EXISTS 和 GROUP BY,但这些对我来说并不是很清楚。
我目前正在尝试...
INSERT INTO table_1 (col1, col2, col3)
SELECT colA, colB, colC
FROM table_2
WHERE NOT EXISTS (SELECT cola FROM table_2);
...因为对我来说,如果 colA 在 table_2 中尚不存在,则将 colA、colB 和 colC 从 table_1 插入 table_2 但我不确定这是否正确。谢谢。
【问题讨论】:
-
A 的唯一性是什么意思。这些要求对我来说毫无意义。
-
我同意@Hogan。我知道您想从 A 列插入唯一值,这可以通过 GROUP BY 轻松完成,但是您需要决定从其他列插入哪些值或对它们求和或其他内容。需要示例数据吗?
标签: sql oracle sql-insert