본문 바로가기
DATABASE/ORACLE

[Oracle] SQL 조건식

SQL 조건식






DECODE : switch case 문과 같은 기능, 여러가지 경우에 대해서 선택 할 수 있도록 한다.


형식 DECODE (표현식, 조건1, 결과1, 조건2, 결과2, 조건3, 결과3, 기본결과n)


1
2
3
4
5
6
7
SELECT ENAME, DEPTNO,
       DECODE(DEPTNO, 10'ACCOUNTING',
                      20'RESEARCH',
                      30'SALES',
                      40'OPERATIONS')
        AS DNAME
FROM EMP;
cs


DEPTNO에 따라 10이면 ACCOUNTING, 20이면 RESEARCH ... 컬럼명이 DNAME인 곳에 출력 



CASE : 역시 여러가지 경우에 대해서 하나를 선택하는 함수, 


DECODE와 차이점 : DECODE 함수는 조건이 일치(=비교 연산자) 하는 경우에 대해서만 적용되는 반면, CASE 함수는 다양한 비교 연산자를 이용하여 조건을 제시 할 수 있으므로 범위를 지정 할 수도 있다. (if else와 유사)


형식 : CASE 표현식 WHEN 조건1 THEN 결과1

   WHEN 조건2 THEN 결과2

   WHEN 조건3 THEN 결과3

   ELSE 결과n

END


1
2
3
4
5
6
7
SELECT ENAME, DEPTNO,
       CASE WHEN DEPTNO = 10 THEN 'ACCOUNTING'
            WHEN DEPTNO = 20 THEN 'RESEARCH'
            WHEN DEPTNO = 30 THEN 'SALES'
            WHEN DEPTNO = 40 THEN 'OPERATIONS'
        END AS DNAME
FROM EMP;
cs


비교연산자 가능

1
2
3
4
5
SELECT ENAME, SAL,
       CASE WHEN SAL >= 1000 THEN '1000이상'
               else '1000이하'
        END AS SALCASE
FROM EMP;
cs






'DATABASE > ORACLE' 카테고리의 다른 글

[Oracle] SQL GROUP BY 절  (0) 2018.04.20
[Oracle] SQL 그룹 함수 집계 데이터  (0) 2018.04.20
[Oracle] SQL 날짜 함수  (1) 2018.04.19
[Oracle] SQL 문자 함수  (0) 2018.04.19
[Oracle] SQL 숫자 함수  (0) 2018.04.19