작콩큰콩

[ SQL ] 테이블 전체 가져와서 넣기 ( 테이블 전체 select 해서 insert 하기 / insert into 테이블 (컬럼) select 컬럼 from 테이블) 본문

작은 콩 개발자/SQL

[ SQL ] 테이블 전체 가져와서 넣기 ( 테이블 전체 select 해서 insert 하기 / insert into 테이블 (컬럼) select 컬럼 from 테이블)

귤치치 2022. 6. 14. 15:09

>> 기본 1

insert 할 테이블 전체를 컬럼으로 쓰지 않고 필요한 컬럼에만 셀렉트 해 온 값을 넣을 수 있다.

INSERT INTO 테이블
	(컬럼, 컬럼, ...)
SELECT 컬럼, 컬럼, ... 
FROM 테이블;

 

>> 예시

 

INSERT INTO TB_PG_WBS
	(WBS_CD
    , PROJ_CD
    , WBS_NM
    , LVL
	, WGTV
    , BIZ_PHS
    , UP_CD
    , CSTRNBIC_SABUN
    , WBS_RIVSN
    , UNITCSTRN_YN
    , DEL_YN
    , RGST_SABUN
    , RGST_DT)
SELECT 
	  WBSNO AS WBS_CD
	, PROCD AS PROJ_CD
	, WBSNM AS WBS_NM
	, SLEVEL AS LVL
	, WEIGHT AS WGTV
	, DECODE( BIZAREA, 'B' , 'CC001', 'E' , 'CC002', 'P' , 'CC003', 'C' , 'CC004', 'CS' , 'CC005' , '' ) AS BIZ_PHS	
	, UPPERWBS AS UP_CD
	, SUPWORK ASCSTRNBIC_SABUN
	, '0' AS WBS_RIVSN
	, 'N' AS UNITCSTRN_YN
	, 'N' AS DEL_YN
	, 'a' AS RGST_SABUN
	, sysdate AS RGST_DT
FROM T1_XS_WBS 
WHERE PROCD = '18612' 
  AND BIZAREA NOT IN ('X') 
  AND PDCSTA IS NOT null;

 

>>기본2

insert 할 테이블 전체 컬럼을 다 넣어주어야 한다. as 를 써서 insert 할 테이블 컬럼으로 맞추지 않아도 된다.

INSERT INTO 테이블
SELECT 
컬럼
,컬럼
, ...
FROM 테이블

 

>> 예시

A 테이블 컬럼 :  a, b, c

B 테이블 컬럼 : d, e, f, g

INSERT INTO A 
	/* 넣어야 하는 테이블에 컬럼을 확인하기 위해서 주석으로 적어준 것 뿐이다.
    ( a
    , b
    , c
    )*/
SELECT 
	  d --이렇게 as를 안써도 된다.
    , e as b -- as를 써서 확실히 적어주어도 좋다.
    , g
FROM B
Comments