반응형
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)
[MSSQL] COUNT CASE (조건 카운트) COUNT DISTINCT (중복제거 카운트)
[MSSQL] ORDER BY CASE (조건정렬)
반응형
'프로그래밍 > MSSQL' 카테고리의 다른 글
MSSQL 간단 정리 요약 사전 (3) | 2019.01.07 |
---|---|
[MSSQL] 일별 누적 접속자 통계 구하기 (누적 합계) (0) | 2018.10.31 |
[MSSQL] DISTINCT, GROUP BY 중복제거 (0) | 2018.05.09 |
[MSSQL] 0으로 나누기 오류가 발생했습니다. (0) | 2018.05.08 |
[MSSQL] DB LOCK 확인 및 해제 (0) | 2018.02.10 |