- 숫자 관련 함수
ㆍ ABS : 절대값
SELECT ABS(-10)
FROM DUAL;
ㆍ FLOOR : 버림
SELECT FLOOR(12.567)
FROM DUAL;
ㆍ ROUND(대상, 자리수) : 반올림
SELECT ROUND(12.567)
FROM DUAL;
SELECT ROUND(12.567, 2)
FROM DUAL;
SELECT ROUND(12.567, -1)
FROM DUAL;
ㆍ TRUNC : 특정 자리 잘라냄
SELECT TRUNC(12.345, 2)
, TRUNC(12.345, -1)
, TRUNC(12.345)
FROM DUAL;
ㆍMOD : 나머지
SELECT MOD(17, 3)
FROM DUAL;
- 문자 관련 함수
ㆍUPPER : 대문자 변환
SELECT UPPER('testuser')
FROM DUAL;
ㆍLOWER : 소문자 변환
SELECT LOWER('TESTUSER')
FROM DUAL;
ㆍINITCAP : 이니셜만 대문자 변환
SELECT INITCAP('TESTUSER HOMEPAGE')
FROM DUAL;
ㆍLENGTH : 문자열 길이
SELECT LENGTH('TESTUSER')
, LENGTH('테스트사용자')
FROM DUAL;
ㆍSUBSTR(대상, 시작위치, 추출길이) : 문자열 일부 추출
SELECT SUBSTR('Welcome to testuser', 5, 2)
FROM DUAL;
SELECT SUBSTR('Welcome to testuser', -5, 2)
FROM DUAL;
ㆍINSTR(대상, 찾을문자, 시작위치, 발견되는위치인덱스) : 특정 문자 위치
SELECT INSTR('Welcome to testuser', 'e', 6, 3)
FROM DUAL;
ㆍLPAD(대상, 채울길이, 채울문자) : 왼쪽을 특정 문자로 지정한 길이만큼 채움
SELECT LPAD('testuser', 20, '@')
FROM DUAL;
ㆍRPAD(대상, 채울길이, 채울문자) : 오른쪽을 특정 문자로 지정한 길이만큼 채움
SELECT RPAD('testuser', 20, '@')
FROM DUAL;
ㆍLTRIM : 왼쪽 공백문자 제거
SELECT LTRIM(' testuser')
FROM DUAL;
ㆍRTRIM : 오른쪽 공백문자 제거
SELECT RTRIM('testuser ')
FROM DUAL;
ㆍTRIM : 양쪽 공백문자 제거
SELECT TRIM(' testuser ')
FROM DUAL;
ㆍREPLACE : 문자 변환
SELECT REPLACE('testuser', 't', 'T')
FROM DUAL;
ㆍCONCAT : 문자열 결합
SELECT CONCAT('Welcome to', ' testuser')
FROM DUAL;
※ || (파이프라인)을 사용해도 동일한 결과
SELECT 'Welcome to' || ' testuser'
FROM DUAL;
- 날짜 관련 함수
ㆍSYSDATE : 현재 날짜
SELECT SYSDATE
FROM DUAL;
SELECT SYSDATE-1 -- 어제
, SYSDATE+1 -- 내일
FROM DUAL;
ㆍMONTHS_BETWEEN : 날짜 사이 간격(월 단위)
SELECT MONTHS_BETWEEN(SYSDATE, '20130101')
FROM DUAL;
ㆍADD_MONTHS : 특정 일자에 월 단위로 더함
SELECT ADD_MONTHS(SYSDATE, 6)
FROM DUAL;
ㆍLAST_DAY : 해당 달의 마지막 날짜
SELECT LAST_DAY(SYSDATE)
FROM DUAL;
- 형 변환 관련 함수
ㆍTO_CHAR : 문자형으로 변환
SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD')
FROM DUAL;
SELECT TO_CHAR(1234, '0000000000')
FROM DUAL;;
SELECT TO_CHAR(1234, '999,999')
FROM DUAL;
ㆍTO_NUMBER : 숫자형으로 변환
SELECT TO_NUMBER('20000') - 300
FROM DUAL;
ㆍTO_DATE : 날짜형으로 변환
SELECT MONTHS_BETWEEN(SYSDATE, TO_DATE('20130101', 'YYYYMMDD'))
FROM DUAL;
ㆍ NVL : NULL을 지정한 값으로 변환
SELECT NVL(NULL, 'EMPTY')
FROM DUAL;
- 조건 함수
ㆍDECODE(표현식, 조건1, 결과1, 조건2, 결과2, ..., 조건n, 결과n, 디폴트결과)
SELECT DECODE(10, 10, 'A', 20, 'B', 30, 'C', 'D')
FROM DUAL;
ㆍCASE
SELECT CASE 10
WHEN 10 THEN 'A'
WHEN 20 THEN 'B'
WHEN 30 THEN 'C'
ELSE 'D' END
FROM DUAL;
SELECT CASE
WHEN DEPTNO=10 THEN 'A'
WHEN DEPTNO=20 THEN 'B'
WHEN DEPTNO=30 THEN 'C'
ELSE 'D' END
FROM EMP;