SQL SELECT INTOフィールド
-
21-09-2019 - |
質問
私は、次の何かを達成したい:
Select DISTINCT(tableA.column) INTO tableB.column FROM tableA
目標は、個別のデータセットを選択して、新しいテーブルの特定の列にそのデータを挿入することです。
他のヒント
SELECT column INTO tableB FROM tableA
それはそれに新しいレコードを挿入すると、SELECT INTOはテーブルを作成します。それは(TABLEBがすでに存在する場合)あなたが望むものではない場合、あなたはこのような何かを行う必要があります:
INSERT INTO tableB (
column
)
SELECT DISTINCT
column
FROM tableA
TableBのはそれだけで1以上の列を持っている場合、あなたは(私は私の例で行ったように)あなたがに挿入される列の一覧を表示する必要があることを覚えておいてください。
以下を試してみてください...
INSERT INTO tableB (column)
Select DISTINCT(tableA.column)
FROM tableA
目標は、個別のデータセットを選択して、新しいテーブルの特定の列にそのデータを挿入することです。
この....テーブルBがすでに存在する場合、私は... TABLEBのスキーマが何であるかを知らないと、他のいずれかが、ここで提案として、あなたが行うことができます列に一意の制約はありません
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.