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 |
Tags
- linux
- 오라클
- Python DataFrame
- tibero
- 파이썬 알고리즘
- Oracle VM VirtualBox
- 파이썬 전처리
- VirtualBox
- 리눅스
- MariaDB
- Python 라이브러리
- dbeaver
- sql
- HTML
- 리눅스 명령어
- Algorithm
- 코딩테스트
- it 용어
- csharp
- 알고리즘
- C#
- putty
- 파이썬
- 파이썬 데이터프레임
- python algorithm
- PYTHON
- Oracle
- 데이터베이스
- RFP
- it용어
Archives
- Today
- Total
오경석의 개발노트
Oracle_CASE 표현 본문
■ CASE 표현
- CASE 표현은 IF-THEN-ELSE 논리와 유사한 방식으로 표현식을 작성해서 SQL의 비교 연산 기능을 보완하는 역할을 한다. ANSI/ISO SQL 표준에는 CASE Expression이라고 표시되어 있는데, 함수와 같은 성격을 가지고 있으며 Oracle의 Decode 함수와 같은 기능을 한다. CASE 표현은 함수의 성질을 갖고 있으므로 다른 함수처럼 중첩해 사용할 수 있다.
[예제] 일반 프로그램의 IF-THEN-ELSE-END 로직과 같다.
IF SAL > 2000
THEN REVISED_SALARY = SAL
ELSE REVISED_SALARY = 2000
END IF
[예제] 같은 기능을 하는 CASE 표현이다.
SELECT ENAME,
CASE
WHEN SAL > 2000 THEN SAL
ELSE 2000
END REVISED_SALARY
FROM EMP;
[예제] 부서 정보에서 부서 위치를 미국의 동부, 중부, 서부로 구분하라.
SELECT LOC,
CASE LOC
WHEN 'NEW YORK' THEN 'EAST'
WHEN 'BOSTON' THEN 'EAST'
WHEN 'CHICAGO' THEN 'CENTER'
WHEN 'DALLAS' THEN 'CENTER'
ELSE 'ETC'
END AS AREA
FROM DEPT;
[예제] 사원 정보에서 급여가 3000 이상이면 상등급으로, 1000 이상이면 중등급으로, 1000 미만이면 하등급으로 분류하라.
SELECT ENAME,
CASE
WHEN SAL >= 3000 THEN '상'
WHEN SAL >= 1000 THEN '중'
ELSE '하'
END AS 등급
FROM EMP;
[예제] 사원 정보에서 급여가 2000 이상이면 보너스를 1000으로, 1000 이상이면 500으로, 1000 미만이면 0으로 계산한다.
SELECT ENAME, SAL,
CASE
WHEN SAL >= 2000 THEN 1000
ELSE (CASE
WHEN SAL >= 1000 THEN 500
ELSE 0
END)
END AS BONUS
FROM EMP;
출처 : SQL 전문가 가이드
'프로그래밍 언어 > Oracle' 카테고리의 다른 글
Oracle_WHERE 절 (0) | 2023.11.10 |
---|---|
Oracle_NULL 함수 (0) | 2023.11.09 |
Oracle_변환형 함수 (0) | 2023.11.09 |
Oracle_날짜형 함수 (0) | 2023.11.09 |
Oracle_숫자형 함수 (0) | 2023.11.09 |
Comments