반응형

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)
반응형

+ Recent posts