database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Tutorials 11512 게시물 읽기
 News | Q&A | Columns | Tutorials | Devel | Files | Links
No. 11512
Oracle 9i 에서 CASE 사용예
작성자
정재익(advance)
작성일
2002-07-29 11:36
조회수
7,407

Oracle9i에서 부터 지원하는 CASE의 간단한 예입니다.

 

Oracle Magazine에서 참조하였습니다...

 

EMP 테이블에서 각 사원의 고용일에 대해 근속년수를 구하고 이를 화면에 출력하는

SQL문과 출력 결과는 다음과 같다.

 

SQL> SELECT ename,

2 (CASE EXTRACT(YEAR FROM hiredate)

3 WHEN 1982 THEN '3 years service'

4 WHEN 1981 THEN '4 years service'

5 WHEN 1980 THEN '5 years service'

6 END) AS "Award for 2000"

7 FROM emp

8 WHERE EXTRACT(YEAR FROM hiredate) IN (1982,1981,1980)

9 ORDER BY hiredate;

 

위의 간단한 CASE 표현식에 대한 출력 결과는 다음과 같다.

ENAME Award for 2000

--------------- ---------------------------

SMITH 5 years service

ALLEN 4 years service

WARD 4 years service

JONES 4 years service

BLAKE 4 years service

CLARK 4 years service

TURNER 4 years service

MARTIN 4 years service

KING 4 years service

JAMES 4 years service

FORD 4 years service

MILLER 3 years service

12 rows selected.

 

 

 

SQL> SELECT empno, ename,(CASE

2 WHEN sal >= 5000 THEN 'High Sal'

3 WHEN sal >= 3000 AND sal < 5000 THEN 'Middle Sal'

4 WHEN sal >= 1000 AND sal < 3000 THEN 'Average Sal'

5 WHEN sal < 1000 THEN 'Low Sal'

6 END) AS Sal_Category

7 FROM emp;

 

EMPNO ENAME SAL_CATEGORY

------------- ------------- -------------------------

7369 SMITH Low Sal

7499 ALLEN Average Sal

7521 WARD Average Sal

7566 JONES Average Sal

7654 MARTIN Average Sal

7698 BLAKE Average Sal

7782 CLARK Average Sal

7788 SCOTT Middle Sal

7839 KING High Sal

7844 TURNER Average Sal

7876 ADAMS Average Sal

7900 JAMES Low Sal

7902 FORD Middle Sal

7934 MILLER Average Sal

이 글에 대한 댓글이 총 2건 있습니다.

안녕하세요. 장석문 입니다.

 

Case문의 경우 오라클 8i에서 부터 제공합니다.

 

참고하세요.

 

즐거운 하루되세요.

장석문(math90)님이 2002-07-30 16:40에 작성한 댓글입니다.

8i버젼에서 다 case문이 되지는 않습니다...

8.1.7이상부터이던가 그렇구요.... 그리고 procedure에서는

case문을 해석되지 않습니다.(참고 8.1.7, 9i는 아직 사용 하지는 않았습니다.) procedure에서 case문을 사용시 다이나믹sql을 사용하시기 바랍니다... 즐거운 하루 되세요..

나그네님이 2005-05-24 10:54에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
11776Oracle XA and TP Monitor FAQ
정재익
2002-08-23
6395
11537RedHat 7.1 에서 Oracle 8.1.7 의 설치법
정재익
2002-07-31
9097
11513Oracle Performance Tuning
정재익
2002-07-29
7769
11512Oracle 9i 에서 CASE 사용예 [2]
정재익
2002-07-29
7407
11511NULLIF및 COALESCE 함수
정재익
2002-07-29
7421
11510윈도우용 오라클에서 memory 효율적인 사용방법
정재익
2002-07-29
6245
11509Oracle backup/recovery
정재익
2002-07-29
8765
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2019 DSN, All rights reserved.
작업시간: 0.094초, 이곳 서비스는
	PostgreSQL v11.5로 자료를 관리합니다