4

次のいずれかを達成したいと考えています。

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

目標は、個別のデータ セットを選択し、そのデータを新しいテーブルの特定の列に挿入することです。

4

4 に答える 4

8
SELECT column INTO tableB FROM tableA

SELECT INTO は、新しいレコードを挿入するときにテーブルを作成します。それが必要でない場合 (tableB が既に存在する場合)、次のようにする必要があります。

INSERT INTO tableB (
column
)
SELECT DISTINCT
column
FROM tableA

tableb に 1 つだけの列がある場合は、挿入先の列をリストする必要があることに注意してください (私の例で行ったように)。

于 2009-12-22T19:42:18.753 に答える
4

あなたはほとんどそこにいます。

SELECT DISTINCT column INTO tableB FROM tableA

選択リストで指定されている列に挿入されるため、tableBにない列に挿入する必要がある場合は、選択値をエイリアスする必要がありますtableA

に選択

于 2009-12-22T19:37:14.273 に答える
2

次のことを試してください...

INSERT INTO tableB (column)
Select DISTINCT(tableA.column)
FROM tableA
于 2009-12-22T19:40:05.500 に答える
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.

于 2009-12-22T20:48:11.677 に答える