개발로 자기계발
728x90

기본적으로 CASE 문에서는 복수의 조건을 테스트할 때 OR를 사용하곤 한다. 그러나, 같은 컬럼의 값이 특정 집합에 속하는지를 검사하려면 IN 연산자를 사용하는 것이 더 간결하고 읽기 쉬웠다.

 

예를 들어, lm.subj_nm 값이 '국어' 또는 '국어선택학습'인지를 검사하려면 다음과 같이 OR를 사용할 수 있다:

when lm.subj_nm = '국어' or lm.subj_nm = '국어선택학습' then '1'

그러나 이것은 IN을 사용하면 더 간결하게 표현할 수 있다:

WHEN lm.subj_nm IN ('국어', '국어선택학습') THEN '1'

두 쿼리는 완전히 동일한 결과를 내지만, 후자는 명확성과 가독성 면에서 더 우수하다고 생각한다. 특히 조건이 많아질수록 IN 연산자를 사용하는 것이 코드를 이해하고 유지보수하는 데 도움이 되었다.


이번엔 반대로 돌려서 상황을 봐보자.

예를 들어, '국어', '국어선택학습', '수학', '수학선택학습', '영어', '영어선택학습' 중 하나와 일치하는지 검사하려면 IN 연산자를 사용하는 것이 훨씬 더 간단하다:

WHEN lm.subj_nm IN ('국어', '국어선택학습', '수학', '수학선택학습', '영어', '영어선택학습') THEN '1'

대조적으로 OR를 사용하면 이것이 훨씬 복잡해진다:

when lm.subj_nm = '국어' or lm.subj_nm = '국어선택학습' or lm.subj_nm = '수학' or lm.subj_nm = '수학선택학습' or lm.subj_nm = '영어' or lm.subj_nm = '영어선택학습' then '1'

따라서, 개인적으로는 IN 연산자를 사용하는 것이 더 간결하고 가독성이 좋았다.

728x90
SMALL
profile

개발로 자기계발

@김잠봉

틀린부분이나 조언이 있다면 언제든 환영입니다:-)