오라클 CASE문 사용법 - CASE WHEN THEN ELSE END 표현식 사용 방법
오라클에서 if문을 사용할 때 대게 DECODE 함수를 떠올릴 것이다.
하지만 DECODE 함수는 오라클 SQL에서만 사용할 수 있는 비표준함수이고 조건이 많아지면 복잡해지고 가독성이 떨어지는 단점을 갖고 있다 ㅠ_ㅠ ,,,
오라클에서 DECODE 함수 대신하여 쓸 수 있는 것이 CASE 표현식이다 !
CASE 문은 DECODE 함수보다 좀 더 확장적이며 가독성이 뛰어나다. 복잡한 조건을 따질 때는 CASE 표현식을 사용하는 것을 권장한다. CASE문 사용 방법을 알아보자 !! :D
▷ CASE문 사용 방법
CASE문은 값이나 조건에 따라 다르게 결과값을 받아올 수 있다. 조건을 값으로 주냐 조건식으로 주냐에 따라 표현식이 조금 다르긴 한데 우선 조건식인 CASE WHEN THEN ELSE END 표현식을 살펴보자 !
![[Oracle] CASE문 - CASE WHEN 표현식 사용법 - undefined - undefined - ▷ CASE문 사용 방법 [Oracle] CASE문 - CASE WHEN 표현식 사용법 - undefined - undefined - ▷ CASE문 사용 방법](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
CASE문에서 조건을 만족하지 않았을 시에는 NULL값을 리턴하기 때문에 ELSE문은 생략 가능하다.
Alias는 필요시에 해당 컬럼명을 넣어주면 된다. CASE 표현식은 SELECT 절, WHERE절,, 등에서 다양하게 사용되어진다.
WHEN THEN 뒤 조건식이나 리턴 값 부분에는 연산식이 들어가도 되니 응용해서 사용가능하다 !! :)
또한, 조건이 아니라 대상 값과 값을 비교하여 각각 다른 결과 값을 출력하고 싶을 때에는 표현식이 조금 다르다.
![[Oracle] CASE문 - CASE WHEN 표현식 사용법 - undefined - undefined - ▷ CASE문 사용 방법 [Oracle] CASE문 - CASE WHEN 표현식 사용법 - undefined - undefined - ▷ CASE문 사용 방법](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
CASE 뒤에 대상 값을 넣어주고 조건식에 비교 값을 넣어주면 된다.
여기서도 ELSE문은 생략 가능하고 Alias는 필요함에 따라 END 뒤에 넣어주면 된당 !!
'DB > Oracle' 카테고리의 다른 글
[Oralce] ORA-01476: divisor is equal to zero - 제수가 0입니다. (1) | 2023.03.29 |
---|---|
[Oracle] PIVOT 함수 사용법 (행을 열로 변환) (0) | 2021.03.12 |
[Oracle] 순위 매기는 함수 RANK(), DENSE_RANK(), ROW_NUMBER() 비교 (0) | 2021.02.18 |
[Oracle] WITH절 사용법 (0) | 2021.02.18 |
[Oracle] TO_CHAR 숫자 포맷(Format) 형식 _ FM표기법 (0) | 2021.02.16 |
댓글