2018. 7. 20. 18:29 MSSQL/SQL

[MSSQL] 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)




출처: http://ggmouse.tistory.com/214?category=938079 [초보개발자꽁쥐]

Posted by 안낭우훗

블로그 이미지
좋은싸이트 공유, 재해석 , 공부 정리, 틀린거 알려 주세요~
안낭우훗

태그목록

공지사항

Yesterday
Today
Total

달력

 « |  » 2025.5
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

최근에 올라온 글

최근에 달린 댓글

글 보관함