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 |