DB/MSSQL
[MSSQL] WHERE CASE WHEN 조건절에 조건문
Calssess
2020. 6. 17. 13:09
반응형
WHERE 절에서 CASE WHEN을 사용해보자
예제1. 과목이 Math일 경우에만 점수가 100점 그 외의 경우에는 0점인 ROW 조회
SELECT *
FROM TBL_TEST
WHERE Score = (CASE WHEN @in_Subject = 'Math' THEN 100 ELSE 0 END)
위의 쿼리는 아래와 같이 AND OR 조건으로 바꿔 사용할 수도 있다.
SELECT *
FROM TBL_TEST
WHERE (@in_Subject = 'Math' AND Score = 100)
OR (@in_Subject <> 'Math' AND Score = 0)
예제2. 과목이 Math일 경우에만 점수가 100점 그 외의 경우에는 전체 ROW 조회
SELECT *
FROM TBL_TEST
WHERE (CASE WHEN @in_Subject = 'Math' THEN Score ELSE '' END)
= (CASE WHEN @in_Subject = 'Math' THEN 100 ELSE '' END)
예제3. 과목이 Math일 경우 점수가 100점 English일 경우에 점수가 50점인 ROW 조회
SELECT *
FROM TBL_TEST
WHERE (CASE WHEN @in_Subject IN ('Math','English') THEN Score ELSE '' END)
= (CASE WHEN @in_Subject = 'Math' THEN 100 WHEN @in_Subject = 'English' THEN 50 ELSE '' END)
반응형