반응형
오늘은 오라클 쿼리에서 사용할 수 있는 조건절인 CASE 구문과 DECODE 구문의 사용방법을 알아보겠습니다.
쿼리 내에 조건절을 사용할 수 있는 대표적인 방법으로는 CASE 구문과 DECODE 구문이 있는데요,
지극히 개인적인 제 판단으로는 CASE구문이 좀 더 가독성이 좋더라구요.
그래서 간단한 조건절의 경우 DECODE를 사용하고 조금 복잡한 조건식이 들어갈 경우 CASE를 사용합니다.
[CASE 구문]
CASE WHEN [조건식1]
THEN [결과1]
WHEN [조건식2]
THEN [결과2]
...
ELSE [ELSE 결과]
END
[DECODE 구문]
DECODE([비교컬럼], [조건1], [결과1], [조건2], [결과2], … , [ELSE 결과] )
예제를 통해 좀 더 자세히 알아보도록 하지요!
Q. EMPLOYEE 테이블의 이름의 첫글자가 '김'일 경우 '1'로, '박'일 경우 '2'로 표현, 둘 다 아닐경우 '0'으로 표현하시오.
[CASE 사용]
SELECT
CASE WHEN NAME LIKE '김%'
THEN '1'
WHEN NAME LIKE '박%'
THEN '2'
ELSE '0'
END AS NAME_GROUP
FROM EMPLOYEE
[DECODE 사용]
SELECT DECODE (SUBSTR(NAME, 0, 1), '김', '1', '박', '2', '0') AS NAME_GROUP
FROM EMPLOYEE
*DECODE는 비교를 (=)로 하기 때문에 SUBSTR함수를 사용했습니다.
감사합니다!
반응형
'개발 > 오라클' 카테고리의 다른 글
[Oracle] 오라클 OVER() 함수 사용방법 (OVER() PARTITION BY ~ ) (0) | 2020.03.31 |
---|---|
[Oracle] 오라클 LPAD, RPAD 함수 사용방법 (0, 공백 채우기) (0) | 2020.03.31 |
[Oracle] 오라클 날짜 포맷/날짜 연산/ 날짜 계산 (0) | 2020.03.31 |
[Oracle] 오라클 MERGE 구문 사용 예제 (0) | 2020.03.31 |
[Oracle] 오라클 SUBSTR(문자열 자르기) / INSTR(문자열위치) 응용 (0) | 2020.03.31 |
댓글