1. 날짜형 함수
SYSDATE : 현재날짜와 시각을 출력
ex) SELECT SYSDATE FROM DUAL;
EXTRACT : 날짜 데이터에서 년월일 데이터를 출력
ex)
SELECT
EXTRACT(YEAR FROM SYSDATE) AS YEAR,
EXTRACT(MONTH FROM SYSDATE) AS MONTH,
EXTRACT(DAY FROM SYSDATE) AS DAY
FROM DUAL;
2. 변환형 함수
TO_NUMBER : 문자열을 숫자로 변환
ex) SELECT TO_NUMBER('1234') FROM DUAL;
TO_CHAR : 숫자 날짜를 주어진 FORMAT에 맞춰 문자열로 변환
ex) SELECT TO_CHAR(1234) FROM DUAL;
ex) SELECT TO_CHAR(SYSDATE,'YYYY-MM-DD') FROM DUAL;
TO_DATE : 문자열을 주어진 FORMAT에 맞춰 날짜타입으로 변환
ex) SELECT TO_DATE('2021-09-06 01:23:45', 'YYYY-MM-DD HH24:MI:SS') FROM DUAL;
3. NULL 함수
NVL(표현식1, 표현식2) : 표현식1의 결과 값이 NULL인경우 표현식2 출력
ex)
WITH EMP AS
(
SELECT
'유혁' AS NAME,
'123456' AS EMP_NO,
NULL AS CONTEXT
FROM DUAL
)
SELECT EMP.*, NVL(CONTEXT, '공백') FROM EMP;
NVL2(표현식, 표현식1, 표현식2) : 표현식 값이 NULL이 아닐경우 표현식1 반환, NULL일 경우 표현식2 반환
ex)
WITH EMP AS
(
SELECT
'유혁' AS NAME,
'123456' AS EMP_NO,
NULL AS CONTEXT
FROM DUAL
)
SELECT EMP.*, NVL2(EMP_NO,'표현식1', '표현식2') ,NVL2(CONTEXT,'표현식1','표현식2') FROM EMP;
NULLIF(표현식1, 표현식2) : 표현식1과 표현식2 값이 동일하면 NULL 반환, 그렇지 않으면 표현식1 반환
ex)
WITH EMP AS
(
SELECT
'유혁' AS NAME,
'123456' AS EMP_NO,
NULL AS CONTEXT
FROM DUAL
)
SELECT EMP.*, NULLIF(EMP_NO,'123456'), NULLIF(EMP_NO,'123457') FROM EMP;
COALESCE(표현식1, 표현식2, 표현식3... ) : 표현식1이 NULL이 아니면 표현식1값을 반환,
그렇지 않으면 COALESCE(표현식2, 표현식3..) 결과값 반환
ex)
WITH EMP AS
(
SELECT
'유혁' AS NAME,
'123456' AS EMP_NO,
NULL AS CONTEXT,
NULL AS TMP
FROM DUAL
)
SELECT EMP.*, COALESCE(CONTEXT, TMP, EMP_NO) FROM EMP;
'DB' 카테고리의 다른 글
[DB] Oracle TABLESPACE 란 (0) | 2021.09.13 |
---|---|
[DB] Oracle 자주쓰는 숫자형 함수 (0) | 2021.09.02 |
[DB] Oracle 자주쓰는 문자열 함수 (0) | 2021.08.30 |
[DB] MySQL 계정관리 (0) | 2021.08.24 |
[DB] DDL - SQL문 (0) | 2021.08.23 |