ms sql 쿼리를 작성하다,
보통은 where 절에 case문으로 조건을 나눠 조회 쿼리를 작성하면 된다.
하지만 간혹 case문으로 해결 되지 않는 로직이 있을 때가 있다.
그럴땐 아래의 예시를 참조하여 보자.
예시)
DECLARE @PARAM VARCHAR(10)
SELECT NAME, AGE FROM TB_TEST
WHERE (
(@PARAM ='0' AND NAME = 'A') OR
(@PARAM ='1' AND NAME = 'B')
)
- @PARAM 을 '0' 으로 받았을때, TB_TEST 테이블에서 NAME 이 A인 사람이 조회 되고,
'1'로 받았을 때, NAME 이 B인 사람이 조회된다.
설명 :
생각을 조금 바꿔 본다면.. 빨리 풀릴수 있는 문제인데 case 문으로만 생각한다면 조금 오래걸리거나 불가능하지 않을까 생각한다.
저 쿼리를 조금 바꿔서 설명하자면, @PARAM = 0 과 NAME = 'A' 일때, @PARAM = 1 과 NAME = 'B' 일때만 검색되고 나머지 경우는 검색이 안된다고 생각하면 쉽다.
예를 들어 @PARAM = 1 과 NAME ='A'는 검색 되지 않겠지?
'SQL > MS-SQL & SQL Server Management Studio' 카테고리의 다른 글
[MS SQL] INSERT,UPDATE 한번에 처리하기 (MERGE ) (0) | 2019.09.24 |
---|---|
[MS SQL]SQL SERVER AGENT 사용 자동 스케줄링 (0) | 2019.09.17 |
[MS-SQL] 락(LOCK)걸린 쿼리, (조회/해제 (0) | 2019.08.22 |
[MS-SQL] NUMERIC 소수점 설정/ 자르기. (0) | 2019.08.22 |
[ms sql] 겹치는 날짜가 있는지 조회하기 (0) | 2019.08.13 |
댓글