본문 바로가기
Error & Fix

MSSQL WHERE 절에 IF 형식으로 AND 추가방법

by wakestand 2020. 4. 16.
반응형

MSSQL에서 조회 시 WHERE 문에

특정 조건일 때만 AND 를 넣어 조회하게 하려고 하는데

 

일단 예제에 사용할 테이블은 위와 같이 생성한다

 

AND ((조건이 맞지 않을 경우) OR (조건 AND AND_추가조건))

이런 식으로 사용해주면 되는데

 

여기서는 단순 예제이기 때문에 이렇게 작성했지만

프로시저를 이용한 실 사용시에는 

 

AND ((@VALUE <> 'A') OR (@VALUE = 'A' and VAL = 'A' ))

이런 식으로 사용을 하게 될 것이다

 

여기서 조건이 맞을 경우에는 VAL이 A인 값만 가져오고

조건이 맞지 않을 경우에는 해당 AND 문을 넘어가게 된다

 

즉 조건 왼쪽의 'A'를 모두 'B'로 바꾸면

A,B,C가 출력되고

'A'로 유지시키면 VAL = 'A'에 해당하는 A만 나오게 된다는 것이다

 

예제에 사용한 쿼리는 아래와 같다

 

CREATE TABLE TEST_TABLE(
    VAL NVARCHAR(10)
)

INSERT INTO TEST_TABLE(VAL) VALUES('A');
INSERT INTO TEST_TABLE(VAL) VALUES('B');
INSERT INTO TEST_TABLE(VAL) VALUES('C');

SELECT VAL 
  FROM TEST_TABLE
 WHERE 1=1
   AND (('B' <> 'A') OR ('B' = 'A' and VAL = 'A' ))
   
반응형

댓글