Pergunta

Eu quero realizar algo dos seguintes:

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

O objetivo seria selecionar um conjunto de dados distinto e inserir esses dados em uma coluna específica de uma nova tabela.

Foi útil?

Solução

Você está praticamente lá.

SELECT DISTINCT column INTO tableB FROM tableA

Ele será inserido em qualquer coluna (s) especificado na lista de seleção, para que você precise alias seus valores selecionados se precisar inserir em colunas de tableB isso não está dentro tableA.

Selecione em

Outras dicas

SELECT column INTO tableB FROM tableA

A seleção em criará uma tabela enquanto insere novos registros nela. Se não é isso que você deseja (se a tabela já existir), você precisará fazer algo assim:

INSERT INTO tableB (
column
)
SELECT DISTINCT
column
FROM tableA

Lembre -se de que, se a Tableb tiver mais colunas que apenas uma, você precisará listar as colunas nas quais você será inserido (como eu fiz no meu exemplo).

Experimente o seguinte ...

INSERT INTO tableB (column)
Select DISTINCT(tableA.column)
FROM tableA
O objetivo seria selecionar um conjunto de dados distinto e inserir esses dados em uma coluna específica de uma nova tabela.

Não sei qual é o esquema da Tabela ... se a Tabela B já existe e não existe uma restrição única na coluna que você possa fazer como qualquer um dos outros sugere aqui ....

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

Mas se você tiver uma restrição única na Tabela B e já existe, você terá que excluir esses valores já na Tabela 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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top