주니어 개발자가 되는 중입니다...loading....

Oracle 함수 본문

Oracle 오라클

Oracle 함수

휼양 2022. 10. 20. 20:07

1. TO_CHAR

: 숫자를 문자로 변환하기

0 : 변환하는 값이 해당하는 자리에 없으면 0으로 표시, 있으면 그 숫자를 표현하는 방식
9 : 변환하는 값이 해당하는 자리에 없으면 생략하고, 있으면 그 숫자를 표현하는 방식
통화를 표시 : L표시를 함

SELECT 12345678, TO_CHAR(12345678, '999,999,999')--중앙 정렬
                                ,TO_CHAR(12345678, '000,000,000')--중앙 정렬
                                ,TO_CHAR(4500000,'L999,999,999')--오른쪽 정렬
                                ,TO_CHAR(180.5,'999,999.999')--자리수에 없는 소수점은 0으로 변함
                                ,TO_CHAR(180.5,'FM999,999.999')--자리수에 없는 소수점은 0 생략
                                ,TO_CHAR(180.5,'999,999,999')--자동 반올림 됨
FROM DUAL;

 

 

2. TO_NUMBER

SELECT '1,000,000',TO_NUMBER('1,000,000','999,999,999')
        ,TO_CHAR(TO_NUMBER('1,000,000','999,999,999')+50000,'L999,999,999')
FROM DUAL;

'1,000,000' TO_NUMBER('1,000,000','999,999,999') TO_CHAR(TO_NUMBER('1,000,000','999,999,999')+50000,'L999,999,999')
1,000,000 1000000 1,050,000

 

 

3.DECODE

: 조건에 따라 출력값을 변경해주는 함수

DECODE(컬럼||문자열,'일치값','일치값과 동일했을 때 출력값', '일치값2', '일치값2와 동일했을 때 출력값...)

 

SELECT JOB_CODE, DECODE(JOB_CODE, 'J1','대표','J2','부사장','J3','부장','J4','과장','사원') AS 'DECODE'
FROM EMPLOYEE;

-- 결과 : 지정하지 않는 나머지 값은 사원으로 바뀐다

JOB_CODE DECODE
J1 대표
J2 부사장
J3 부장
J4 과장
J5 사원
J6 사원

 

 

4.NULL의 순서 : NULLS FOIRST||LAST 

SELECT BONUS FROM EMPLOYEE
ORDER BY BONUS DESC NULLS LAST; : NULL값 빼고 정렬한 다음에 NULL정렬

SELECT BONUS FROM EMPLOYEE
ORDER BY BONUS DESC NULLS FIRST; : NULL먼저 정렬한 다음에 다른 데이터를 정렬

 

 

5. MINUS : 위의 결과값-아래의 결과값 = 위의 결과값에서 아래의 조건식에 맞지 않는 것만 출력

SELECT EMP_ID, EMP_NAME, DEPT_CODE, SALARY
FROM EMPLOYEE
WHERE DEPT_CODE='D5'
MINUS -- 
SELECT EMP_ID, EMP_NAME, DEPT_CODE, SALARY
FROM EMPLOYEE
WHERE SALARY>=3000000;

 

 

6. INTERSECT : 중복되는 로우만 출력

SELECT EMP_ID, EMP_NAME, DEPT_CODE, SALARY
FROM EMPLOYEE
WHERE DEPT_CODE='D5'
INTERSECT -- 중복되는 로우만 출력
SELECT EMP_ID, EMP_NAME, DEPT_CODE, SALARY
FROM EMPLOYEE
WHERE SALARY>=3000000;

 

7. GROUP BY GROUPING SETS

SELECT DEPT_CODE, JOB_CODE, MANAGER_ID, AVG(SALARY)
FROM EMPLOYEE
GROUP BY GROUPING SETS((DEPT_CODE, JOB_CODE, MANAGER_ID), 
                       (DEPT_CODE, JOB_CODE),
                        (DEPT_CODE, MANAGER_ID));

 

'Oracle 오라클' 카테고리의 다른 글

Oracle JOIN : 테이블을 합쳐서 출력하기  (0) 2022.10.20
Oracle 그룹함수 GROUP BY  (0) 2022.10.20
Oracle 날짜(DATE) 처리 함수  (0) 2022.10.20
Oracle SQL 정의  (0) 2022.10.20
Oracle Database개요  (0) 2022.10.20
Comments