문제

나는 다음을 달성하고 싶습니다.

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

목표는 별개의 데이터 세트를 선택한 다음 해당 데이터를 새 테이블의 특정 열에 삽입하는 것입니다.

도움이 되었습니까?

해결책

당신은 거의 거기에 있습니다.

SELECT DISTINCT column INTO tableB FROM tableA

선택 목록에 지정된 열에 지정된 열에 삽입하려면의 열에 삽입 해야하는 경우 선택 값을 별칭해야합니다. tableB 그건 아니에요 tableA.

선택하십시오

다른 팁

SELECT column INTO tableB FROM tableA

선택은 새 레코드를 삽입하므로 테이블을 만듭니다. 그것이 당신이 원하는 것이 아니라면 (TableB가 이미 존재한다면) 다음과 같은 일을해야합니다.

INSERT INTO tableB (
column
)
SELECT DISTINCT
column
FROM tableA

TableB에 더 많은 열이 있다면 삽입 될 열을 나열해야합니다 (예에서와 같이).

다음을 시도하십시오 ...

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