반응형

동일한 쿼리를 날릴 때 테이블 명을 변수로 사용하고 싶을 때가 있습니다.

열심히 구글링 해서 프로시저를 이용해 시도했지만 여러가지 문제들이 생겼습니다.

SQL의 기본기가 없는 상태로 업무에 투입된 제가 해결한 방법을 소개합니다.

 

예제 1)

 

WITH T AS(

SELECT * FROM tbl_variable

/*WITH 구문은 임시테이블 생성입니다(T는 임시테이블 명칭(변수명)입니다).

테이블 명이 바뀔 때마다 이 곳을 변경해주고 아래 쿼리와 같이 실행하면 작업을 쉽게 할 수 있습니다.*/

INSERT INTO TEST_TABLE

( ID, NAME )

SELECT ID, NAME FROM T

 

예제 2)
WITH T AS(
SELECT * FROM People2019 

UPDATE A SET A.NAME = B.NAME FROM (SELECT * FROM TEST_TABLE) A JOIN (SELECT * FROM T) B ON A.ID = B.ID

 

 

한 테이블에 데이터를 INSERT 혹은 UPDATE를 할 때에 테이블명이 계속 바뀌면 똑같이 여러군데를 변경해줘야할 때 유용합니다.

물론, Ctrl + F 키로 문자 바꾸기로 해도 되지만, 쿼리가 더 복잡하면 변수 선언과 같이 테이블 명도 임시테이블로 만들어서 사용하면 도움이 될 것 같습니다.

 

 

예제 3) 변수 선언 포함

DECLARE @yearOut int;
SET @yearOut = 2020; --가져올 연도를 실행
WITH T AS (
select * from [SAMPLE_TABLE] --가져올 테이블 명칭 실행 
)
INSERT INTO TEST_TABLE 
( ID, NAME, YEAR )
SELECT ID, NAME, @yearOut AS YEAR FROM T

 

 

참고하셔서 확장해서 사용하시면 될 것 같습니다.

반응형

+ Recent posts