[MSSQL] NULL 이 아닌 경우에만 WHERE 조건 수행하도록 하는 법

·2022년 9월 22일
0

입력받은 값이 비어있으면 WHERE 조건을 수행할 필요가 없고, 반대의 경우 WHERE 조건을 수행하는 프로시저를 작성해야 했다.

IF @입력받은 값 <> ''		-- 입력받은 값이 있을 경우
	수행할 쿼리(WHERE 조건 O)
ELSE					-- 입력받은 값이 비어있을 경우
	수행할 쿼리(WHERE 조건 X)

처음에 위와 같이 작성하였으나, @입력받은 값이 하나가 아니라면 중복 쿼리가 발생함에 따라 길어지고, 가독성이 떨어진다.

IF @값1 <> ''
	IF @값2 <> ''
    	수행할 쿼리(값1 : WHERE 조건 O / 값2 : WHERE 조건 O)
    ELSE
    	수행할 쿼리(값1 : WHERE 조건 O / 값2 : WHERE 조건 X)
ELSE
	IF @값2 <> ''
    	수행할 쿼리(값1 : WHERE 조건 X / 값2 : WHERE 조건 O)
    ELSE
    	수행할 쿼리(값1 : WHERE 조건 X / 값2 : WHERE 조건 X)
       .
       .
       .

❗ 빈 값이 아닌 경우에만 WHERE 조건 수행하도록 하는 법

WHERE (@입력받은 값 = '' OR 컬럼 = @입력받은 값)

값이 비어있다면 WHERE 조건을 수행하지 않고, 값이 있다면 WHERE 조건을 수행한다.

SELECT * FROM 테이블
WHERE (@입력받은 값 = '' OR 컬럼 = @입력받은 값)
profile
🎨

0개의 댓글