▣ Oracle 오라클 Case문과 Decode 사용 법!!
안녕하세요 기요밍 입니다.
오라클을 이용해 쿼리를 만들다 보면 특정 값에따라 다른 Action을 취해야 할때가 있습니다.
예를들어 시험 점수가 90점 이상이면 A등급, 80~90점 사이면 B등급을 조회 해야 하는 경우와 같이 말이죠.
이런경우 Case 구문과 Decode 함수를 사용하면 쉽게 해결할 수 있는데요.
각각 어떻게 사용해야 하는지 자세히 알아보겠습니다.
* 연관 포스팅 Oracle/오라클 Decode 함수 사용 법 → [보러가기]
|
Decode 함수 사용
먼저 Decode 함수의 사용법은 위의 포스팅을 확인 하시면 더 자세하게 확인할 수 있습니다.
DECODE (Value, CheckValue1, True Return1, CheckValue2, True Return2,....... False Return)
|
이렇게 각 Value에 대한 Return값을 각각 지정할 수 있습니다.
Case 함수 사용
CASE WHEN Condition1 THEN Value1 WHEN Condition2 THEN Value2 ELSE Value3 END
|
위와 같이 사용 하시면 됩니다 조건 부분 그러니까 COndition으로 되어 있는 부분에 AND 연산자를 이용하여 여러개의 조건을 넣을수도 있습니다. 위에서 예로 들었던 점수를 이용하여 등급을 구하는 쿼리를 예로 들어보면
SELECT CASE WHEN SCORE >= 90 THEN 'A등급' WHEN SCORE >= 80 AND SCORE < 90 THEN 'B등급' ELSE 'C등급' END AS USER_GRADE FROM EXAM_TLB
|
이렇게 작성할 수 있습니다!! 자바의 CASE문과 매우 흡사하죠?^^
간단하게 1, 2개의 조건으로 해결이 가능하다면 DECODE가 복잡한 로직이 들어간다면 CASE 구문이 더 가독성이 좋습니다. 그떄그때 상황에 맞춰 사용하시면 될 것 같네요!!
'데이터베이스 > Oracle' 카테고리의 다른 글
Oracle 오라클 테이블(Talbe) 컬럼 순서 변경 하는법 (0) | 2015.10.24 |
---|---|
Oracle 오라클 나머지 구하는 법 (0) | 2015.10.23 |
[Oracle] 오라클 인덱스(Index) 생성 및 삭제 하는법 (0) | 2015.10.12 |
[Oracle] 오라클 PK(Primary Key) 변경 수정 삭제 생성 하는 법 (0) | 2015.10.12 |
[Oracle] 오라클 날짜 함수, 변환 및 현재 시간 구하기 (0) | 2015.10.07 |