-
날짜형 함수
MONTHS_BETWEEN(date1, date2) : 두 날짜 간의 개월 수 차이
SELECT EMPNO, NAME, HIREDATE, SYSDATE, MONTH_BETWEEN(HIREDATE, SYSDATE) AS MONTH1, MONTH_BETWEEN(SYSDATE, HIREDATE) AS MONTH2 FROM EMP;
NEXT_DAY(date, char) : date의 돌아오는 요일의 날짜
LAST_DAY(date) : dater가 속한 달이 마지막 날짜
SELECT SYSDATE, NEXT_DAY(SYSDATE, ‘월요일’), LAST_DAY(SYSDATE) FROM DUAL;
ROUND(date,format) : 반올림 기준 format 지정
TRUNC(date,format) : 버림 기준 format 지정
SELECT SYSDATE, ROUND(SYSDATE, ‘CC’) AS CC, ROUND(SYSDATE, ‘YYYY’) AS YYYY, ROUND(SYSDATE, ‘Q’) AS Q, ROUND(SYSDATE, ‘DDD’) AS DDD, ROUND(SYSDATE, ‘HH’) AS HH FROM DUAL; SELECT SYSDATE, TRUNC(SYSDATE, ‘CC’) AS CC, TRUNC(SYSDATE, ‘YYYY’) AS YYYY, TRUNC(SYSDATE, ‘Q’) AS Q, TRUNC(SYSDATE, ‘DDD’) AS DDD, TRUNC(SYSDATE, ‘HH’) AS HH FROM DUAL;
TO_CHAR : 날짜 데이터를 원하는 형태의 문자열로 출력. (형변환)
SELECT TO_CHAR(SYSDATE, ‘YYYY/MM/DD HH24:MI:SS’) AS NOW FROM DUAL; SELECT SYSDATE, TO_CHAR(SYSDATE, ‘MM’) AS MM, TO_CHAR(SYSDATE, ‘MON’) AS MON, TO_CHAR(SYSDATE, ‘DD’) AS DD, TO_CHAR(SYSDATE, ‘DY’) AS DY, TO_CHAR(SYSDATE, ‘DAY’) AS DAY FROM DUAL;
TO_DATE : 문자 데이터를 날짜 데이터로 변환
SELECT TO_DATE(‘20210101’, ‘YYYY/MM/DD’) AS TODATE FROM DUAL; SELECT TO_CHAR(TO_DATE('2021-01-01', 'YYYY/MM/DD'), 'YYYY-MM-DD') AS TODATE FROM DUAL;
TO_NUMBER : 문자 데이터를 숫자 데이터로 변환
SELECT TO_NUMBER(‘1,300’, ‘999,999’) AS NUM FROM DUAL;
NULL 처리 함수
NVL(expr1, expr2) : expr1이 null이면 expr2를 출력
SELECT EMPNO, ENAME, COMM, NVL(COMM, 0), SAL+NVL(COMM, 0) FROM EMP;
NVL2(expr1, expr2, expr3) : expr1이 null이 아니면 expr2를 출력, null이면 expr3을 출력
SELECT EMPNO, ENAME, COMM, NVL2(COMM, ‘X’, 0) FROM EMP;
DECODE와 CASE
DECODE
SELECT EMPNO, ENAME, JOB, SAL, DECODE(JOB, ‘MANAGE’, SAL*1.1, ‘SALESMAN’, SAL*1.05, ‘ANALYST’, SAL, SAL*1.03) AS UPSAL FROM EMP;
기준이 되는 데이터를 먼저 지정한 후 해당 데이터 값에 따라 다른 결과 값을 내보내는 함수 조건에 해당하는 값이 없을 때 반환 값 지정하지 않으면 NULL 리턴
CASE
SELECT EMPNO, ENAME, JOB, SAL, CASE JOB WHEN ‘MANAGE’ THEN SAL*1.1 WHEN ‘SALESMAN’ THEN SAL*1.05 WHEN ‘ANALYST’ THEN SAL ELSE SAL*1.03 END AS UPSAL FROM EMP; SELECT EMPNO, ENAME, COMM, CASE WHEN COMM IS NULL THEN ‘해당사항 없음’ WHEN COMM = 0 THEN ‘수당없음’ WHEN COMM > 0 THEN ‘수당 : ‘ || COMM END AS COMM_RESULT FROM EMP;
'개발 > DB' 카테고리의 다른 글
DB_Oracle,SQL 그룹 함수(Group By), sum, count, min, max, avg (0) 2021.11.08 DB_Oracle,SQL ANSI JOIN(SQL-99 표준문법 조인), JOIN ~ ON, OUTER JOIN (0) 2021.11.08 DB_Oracle,SQL 조인, 등가조인, 비등가조인, 자체조인, 외부조인 (0) 2021.11.08 DB_Oracle,SQL Having, ROLLUP, CUBE, GROUPING SETS, LISTAGG ~ WITHIN GROUP, PIVOT, UNPIVOT (0) 2021.11.05 DB_Oracle 서브쿼리, 단일행/다중행 서브쿼리, 인라인 뷰, 스칼라 서브쿼리 (0) 2021.11.04 댓글 (비로그인 댓글 허용하지 않습니다.)