본문 바로가기
Database

CASE문으로 SQL 동적으로 업데이트 하기

by Nhahan 2022. 11. 10.

a, b, c, d라는 컬럼이 있고,

업데이트 시 새로운 @a, @b, @c, @d 값이 존재할 때만 각각의 컬럼들을 업데이트하고 싶을 때 간단하게 쿼리를 짤 수 있다.

 

UPDATE [테이블명]
   SET a = CASE WHEN @a IS NOT NULL THEN @a ELSE a END,
       b = CASE WHEN @b IS NOT NULL THEN @b ELSE b END,
       c = CASE WHEN @c IS NOT NULL THEN @c ELSE c END,
       d = CASE WHEN @d IS NOT NULL THEN @d ELSE d END,

 

빈스트링도 허용하지 않겠다하면

UPDATE [테이블명]
   SET a = CASE WHEN @a IS NOT NULL OR @a = '' THEN @a ELSE a END

 

식으로 응용하면 된다.

 

'Database' 카테고리의 다른 글

쿼리로 랜덤한 문자열 생성  (0) 2023.04.19
중복행 지우는 쿼리  (0) 2023.01.25
unique와 nonclustered index  (0) 2022.12.13
SQL SELECT문에서 @변수에 inline으로 값 할당하기  (0) 2022.11.11
NTEXT와 NVARCHAR(MAX) 차이  (0) 2022.11.01

댓글