MSSQL INSERT INTO SELECT - SELECT 와 동시에 INSERT 하기

MSSQL INSERT INTO SELECT – SELECT 와 동시에 INSERT 하기

MS SQL에서 SELECT 쿼리 결과 데이터를 특정 테이블에 저장(INSERT)할 경우가 빈번하게 발생합니다. INSERT INTO… SELECT 구문으로 SELECT 쿼리 결과 데이터를 저장할 수 있습니다.

그럼 간단한 예제를 통해서 INSERT INTO SELECT 에 대해서 알아보죠.

포스트 기준

– Microsoft SQL Server 2019

– SSMS 18.10

1. 테이블 예시

-- 학생정보 (총 3건)
-- 학번, 성명, 학과, 학년
SELECT * FROM BS_DEMO_8_1
     
-- 과목정보 (총 3건)
-- 과목코드, 과목명
SELECT * FROM BS_DEMO_8_2
     
-- 점수정보 (총 9건)
-- 학번, 과목코드, 점수
SELECT * FROM BS_DEMO_8_3
테이블 예시

2. INSERT INTO SELECT 예제

1. 예제 1)

-- 쿼리 결과 데이터를 BS_DEMO_8_4(테이블)에 저장한다.
INSERT INTO BS_DEMO_8_4
SELECT B.P_ID, B.NAME, B.DEPART, B.GRADE, C.S_ID, C.SUBJECT, A.SCORE
  FROM BS_DEMO_8_3 A
       INNER JOIN BS_DEMO_8_1 B ON A.P_ID = B.P_ID
       INNER JOIN BS_DEMO_8_2 C ON A.S_ID = C.S_ID
 ORDER BY B.P_ID, C.S_ID
     
-- 저장된 데이터 확인
SELECT *
  FROM BS_DEMO_8_4
INSERT INTO SELECT 예제 1


2. 예제 2)

-- 쿼리 결과 데이터를 BS_DEMO_8_5(테이블)에 저장한다.
INSERT INTO BS_DEMO_8_5
SELECT A.P_ID,
       A.NAME,
       A.DEPART,
       A.GRADE,
       -- 국어점수
       (SELECT SCORE FROM BS_DEMO_8_3
         WHERE P_ID = A.P_ID
           AND S_ID = 'A01'),
       -- 영어점수
       (SELECT SCORE FROM BS_DEMO_8_3
         WHERE P_ID = A.P_ID
            AND S_ID = 'A02'),
       -- 수학점수
       (SELECT SCORE FROM BS_DEMO_8_3
         WHERE P_ID = A.P_ID
            AND S_ID = 'A03'),
       -- 평균점수
       (SELECT SUM(SCORE) / COUNT(*) FROM BS_DEMO_8_3
         WHERE P_ID = A.P_ID)
  FROM BS_DEMO_8_1 A
 ORDER BY 1
     
-- 저장된 데이터 확인
SELECT *
  FROM BS_DEMO_8_5
INSERT INTO SELECT 예제 2


이 글이 도움이 되셨다면 공유를 부탁드립니다. 다음 글에서 뵙겠습니다!

관련 이전 게시글

위로 스크롤