오라클 일반 함수

DB

2020. 11. 17.

--일반함수 
--관리자가 없는 사원을 출력하시오 
SELECT * 
FROM EMPLOYEES 
WHERE manager_id IS NULL; 

--관리자가 있는 사원들은 사번, 이름, 관리자번호, '관리자있음'을 출력하고 
--없는 사원들은 사번, 이름, 관리자번호, '관리자없음'을 출력하시오. 
SELECT employee_id, first_name, manager_id ,NVL2(manager_id, '관리자있음', '관리자없음') 
FROM employees; 

--관리자가 있는 사원들은 사번, 이름, 관리자번호를 출력하고 
--없는 사원들은 사번, 이름, 관리자없음을 출력하시오. 
SELECT employee_id, first_name, 
--    * NVL2(manager_id, TO_CHAR(manager_id), '관리자없음')4 
--    * CASE NVL(manager_id, -1) WHEN -1 THEN '관리자없음' 
--                               ELSE TO_CHAR(manager_id) --반환값은 타입이 같아야하므로 같은 타입으로 맞춰준다. 
--                               END 
        DECODE(manager_id, null, '관리자없음', manager_id) -- IS NULL로 알아서 비교하고 형변환도 자동으로 해줌. 
FROM employees; 

SELECT DISTINCT salary FROM employees ORDER BY salary DESC; 
--급여가 10000 이상인 경우 "A", 5000 이상이면 "B", 5000 미만이면 "C" 

SELECT employee_id, salary, CASE WHEN salary >=10000 THEN 'A' 
                                 WHEN salary >=5000  THEN 'B' 
                                 ELSE 'C' END 급여등급 
FROM employees; 

SELECT employee_id, salary 
    , DECODE(TRUNC(salary/5000, 0), 0, 'C' 
                                  , 1, 'B' 
                                  , 'A') 
FROM employees;

'DB' 카테고리의 다른 글

오라클 조인  (0) 2020.11.18
오라클 단일 함수  (0) 2020.11.17
오라클 변환 함수  (0) 2020.11.17
그룹 함수  (0) 2020.11.17
문자 함수  (0) 2020.11.17