Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Flyweight Pattern
- 병합정렬
- list
- 디자인패턴
- boot
- java
- 자바
- oracle
- map
- 시간더하기
- 알고리즘
- 분(minute)
- 초(second)
- SpringBoot
- jQuery
- 조인
- 곱 최대값
- 매일프로그래밍
- 스트레티지패턴
- SSL설정
- json
- 널체크
- spring
- 시(hour)
- JavaScript
- 자바스크립트
- ThreeWayPartition
- 파사드패턴
- degien pattern
- 생년
Archives
- Today
- Total
만들어가는 세상
[ORACLE] 오라클 표현식 CASE, WHEN, THEN 본문
[ORACLE] 오라클 표현식 CASE, WHE, THEN
구문형식
CASE 대상값 when 비교값1 then 처리1 when 비교값2 then 처리2 ……… else 디폴트처리 END;
설명
case는 함수가 아닌 표현식의 일종입니다. 표현식은 하나 혹은 그 이상의 값과 연산자, 함수가 조합된 것을 말하며 함수보다 범위가 더 넓습니다. 위에서 언급했듯이 decode보다 확장된 기능을 제공합니다.
특정 값에 조건에 따라 다르게 표현하기 위해 나타내는 식입니다. 비슷한 함수로는 DECODE 있습니디.
예) 90~100 점은 A, 80~90 은 B, 70~80 은 C 로 표현 하고 싶을때 DECODE를 써도되지만 복잡한 조건처리는 CASE 방식을 사용합니다.
SELECT ID, NAME, SCORE,
CASE WHEN SCORE > 90 THEN 'A'
WHEN SCORE > 80 AND SCORE < 90 THEN 'B'
WHEN SCORE > 70 AND SCORE < 80 THEN 'C'
ELSE 'D'
END AS GRADE
FROM REPORT
DECODE에 대해서 알아봅니다.
구문형식
Decode( expr, search1, result1, search2, result2, …… , default_result)설명
디코드 함수는 첫번째 파라미터로 들어오는 expr 표현식을 검사하여, 이 값이 search1에 해당할 경우 result1을 반환하고, search2에 해당하면 result2를 반환합니다.
- default_result는 생략될 수 있고, 모든 search값을 만족하지 않을 경우 null을 반환하게 됩니다.
- DECODE에 사용되는 식은 동등비교만 가능합니다. (true / false)
SELECT 컬럼, 컬럼
DECODE(컬럼, 'Y', '예', '아니오') AS TEST
FROM DUAL
컬럼값이 'Y'이면 '예' 값을 출력하고, 아니면 '아니오'를 출력합니다. 저는 직관적인 편이라서 DECODE를 쓸때는 딱 저정도까지만 조건일 경우 사용합니다. 조건이 더 많을 경우 CASE, WHE, THEN 표현식을 사용합니다. 이해하기 쉽고 유지보수나 다른 사람이 해석하기 쉽다고 생각합니다.
'IT > ETC' 카테고리의 다른 글
[MySQL] 시간 더하기, 빼기 (0) | 2020.04.22 |
---|---|
[ORACLE] INSERT&SELECT, ROWNUM을 통한 INSERT, 정규식을 이용한 특정 태그 제거, varchar2 clob 타입변경시 등 처리 (0) | 2019.11.13 |
[ORACLE] 유용한 쿼리들2 (0) | 2019.11.12 |
[ORACLE] 유용한 쿼리들1 (0) | 2019.11.12 |
[mybatis] thymeleaf, java,mybatis 부등호 검색조건 처리 방법 (0) | 2019.10.25 |
Comments