과목 II SQL 기본 및 활용

제1장 SQL 기본

제6절 함수 (FUNCTION)

6. CASE 표현

 

 

[예제] 같은 기능을 하는 CASE 표현

일반 프로그램의 IF-THEN-ELSE-END 로직과 같다.

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

 IF SAL > 2000

THEN REVISED_SALARY = SAL

ELSE REVISED_SALARY = 2000

END-IF

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

 SELECT ENAME,

 CASE WHEN SAL > 2000

          THEN SAL

          ELSE 2000

 END REVISED_SALAR

 FROM EMP;

급여(SAL)가 2000보다 크면 급여 값 그대로 2000보다 작으면 급여를 2000으로 해서 REVISED_SALAR 로 출력합니다.

 

 

[실행결과]

(14개 행이 영향을 받음)

 

 


 

 

[예제] 부서 정보에서 부서 위치를 미국의 동부, 중부, 서부로 구분하라.

 SELECT LOC,

 CASE LOC WHEN 'NEW YORK' THEN 'EAST'
                  WHEN 'BOSTON' THEN 'EAST'
                  WHEN 'CHICAGO' THEN 'CENTER'
                  WHEN 'DALLAS' THEN 'CENTER'

 END as AREA
 FROM DEPT;

책에서 그 외는 ETC로 구분했는데 굳이 할 필요 없습니다.

 

 

[실행결과]

(4개 행이 영향을 받음)

 

 


 

 

[예제] 사원 정보에서 급여가 3000 이상이면 상등급으로, 1000 이상이면 중등급으로, 1000 미만이면 하등급으로 분류하라.

 SELECT ENAME,
 CASE WHEN SAL >= 3000 THEN 'HIGH'
          WHEN SAL >= 1000 THEN 'MID'
          ELSE 'LOW'
 END as SALARY_GRADE
 FROM EMP;

 

 

[실행결과]

(14개 행이 영향을 받음)

 

 


 

 

[예제] 사원 정보에서 급여가 2000 이상이면 보너스를 1000으로, 1000 이상이면 5000으로, 1000 미만이면 0으로 계산한다.

 SELECT ENAME, SAL,
 CASE WHEN SAL >= 2000 THEN 1000
          ELSE (CASE WHEN SAL >= 1000 THEN 500

                    ELSE 

                    END)
 END as BONUS
 FROM EMP;

 

 

[실행결과]

(14개 행이 영향을 받음)

 

'SQL 전문가 가이드' 카테고리의 다른 글

NULL과 공집합  (0) 2013.09.30
NVL/ISNULL 함수  (2) 2013.09.30
변환형 함수  (0) 2013.09.27
날짜형 함수  (0) 2013.09.27
숫자형 함수  (0) 2013.09.27
Posted by G4.
,