반응형
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)
반응형
'DB > MSSQL' 카테고리의 다른 글
Some tips for using full-text search in SQL Server 2016 (1) | 2020.06.23 |
---|---|
MsSQL) Non Clustured index 를 Clustured index로 바꾸기 (0) | 2020.06.18 |
MSSQL) Full Text Search : Indexing 진행 현황 확인하기 (0) | 2020.06.12 |
MSSQL) Full Text Searching - 전체 텍스트 인덱스 관리 (0) | 2020.06.12 |
MSSQL) Full Text Search(FREETEXTABLE) 관리 및 데이터 쿼리 모음 (0) | 2020.06.12 |