본문 바로가기

Database/MSSQL work

Merge

table memberTbl을 M, changeTbl을 C로 잡은 후 M. ,C. 으로 사용함

on을 통해 조건을 준 다음 

when으로  상황을 나누어 그 상황에 맞는 값을 씀

 

merge memberTbl as M
	using changeTbl as C
	on M.custId = C.userId
	when not matched and changeType = '신규가입' then
		insert(custId, custName, addr) values (C.userId, C.name, C.addr)
	when matched and changeType ='주소변경' then
		update set M.addr = C.addr
	when matched and changeType = '회원탈퇴' then
		delete;

 

 

 

 

하기전 테이블 셋팅

use OnlineShopDB;

select custId, custName, addr
into memberTbl
from customersTbl;

select *from memberTbl


--머지 사용해보기
--머지가 머지

create table changeTbl
(	changeType		nvarchar(4),
	userId			char(8),
	name			nvarchar(5),
	addr			nvarchar(5)
);

select * from changeTbl;
select * from memberTbl;

insert into changeTbl values
('신규가입','apple','애플','춘천'),
('주소변경','aaaaaaaa', null,'구미'),
('주소변경','dddddddd', null,'인천'),
('회원탈퇴','ffffffff', null, null),
('회원탈퇴','jjjjjjjj', null, null);

'Database > MSSQL work' 카테고리의 다른 글

CAST(), CONVERT(), TRY_(), PARSE()  (0) 2020.11.09
@myVar 변수선언, 할당, 추출  (0) 2020.11.09
UPDATE, DELETE  (0) 2020.11.09
테이블에서 테이블 만들기  (0) 2020.11.09
sequence , default  (0) 2020.11.09