MinBangHome

[MS SQL] WHERE 조건 중 입력받은 값이 있을 경우에만 적용하기 본문

Develop/DB

[MS SQL] WHERE 조건 중 입력받은 값이 있을 경우에만 적용하기

Byungwook Min 2024. 3. 15. 17:01

조회 프로시저 생성 중 동적쿼리로 작성하지 않고,

입력받은 값이 있을 경우에만 WHERE 조건이 수행되도록 작성하고 싶었다.

 

그래서 정보를 찾아보고 작성하게된 조건이다.

 

@변수 = '' OR 컬럼 = @변수

 

해당 조건으로 작성하면, 변수에 입력받은 값이 없을 경우 (Null 또는 '') 조건이 실행되지 않으며,

값이 있을 경우 해당 조건에 맞게 조회가 가능하다.

 

ex)

SELECT *
FROM 테이블
WHERE 1 = 1
  AND (@변수 = '' OR 컬럼 = @변수)
SELECT *
FROM 테이블
WHERE 1 = 1
  AND ((@변수 = '') OR (컬럼 BETWEEN @변수 AND @변수2))

 

 

Comments