Database

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

Nhahan 2022. 11. 10. 17: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

 

식으로 응용하면 된다.