Вопрос

Я хочу выполнить что-то из следующего:

Select DISTINCT(tableA.column) INTO tableB.column FROM tableA

Цель состояла бы в том, чтобы выбрать отдельный набор данных, а затем вставить эти данные в определенный столбец новой таблицы.

Это было полезно?

Решение

Ты в значительной степени там.

SELECT DISTINCT column INTO tableB FROM tableA

Он будет вставляться в любые столбцы, указанные в списке выбора, поэтому вам нужно будет указать псевдоним выбранных значений, если вам нужно вставить в столбцы tableB которые не находятся в tableA.

ВЫБЕРИТЕ В

Другие советы

SELECT column INTO tableB FROM tableA

SELECT 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.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top