[Oracle] 오라클 함수
오라클에는 기본적으로 제공하는 내장 함수와 사용자 정의 함수가 존재한다.
내장 함수는 한 행당 결과가 나오는 단일행 함수와 여러 행이 하나의 행으로 결과가 반환되는 다중행 함수로 나뉜다.
1. 문자 함수
문자 데이터를 가공하거나 특정 결과를 도출하는 함수이다.
UPPER
문자 데이터를 모두 대문자로 반환한다.
LOWER
문자 데이터를 모두 소문자로 반환한다.
INITCAP
문자 데이터를 첫 글자는 대문자, 나머지를 소문자로 반환한다.
SELECT ENAME, UPPER(ENAME), LOWER(ENAME), INITCAP(ENAME)
FROM EMP;
LENGTH
문자열 길이를 구하는 함수
SUBSTR
문자열의 일부를 추출하는 함수
SUBSTR(문자열 데이터, 시작 위치, 추출 길이)
SUBSTR(문자열 데이터, 시작 위치)
INSTR
문자열 데이터 안에 특정 문자나 문자열의 위치를 출력하는 함수
REPLACE
특정 문자를 다른 문자로 바꾸는 함수
LPAD, RPAD
데이터의 빈 공간을 특정 문자로 채우는 함수
CONCAT
두 문자열 데이터를 합치는 함수
TRIM, LTRIM, RTRIM
특정 문자를 지우는 함수, 보통 공백을 지울 때 사용된다.
2. 숫자 함수
숫자 데이터를 연산하거나 수치를 조정하는 함수이다.
ROUND
특정 위치에서 반올림한다.
TRUNC
특정 위치에서 버린다.
CEIL, FLOOR
입력된 숫자와 가까운 큰 정수와 작은 정수를 반환한다.
3. 날짜 함수
날짜 데이터를 다루는 함수이다.
ADD_MONTHS
특정 날짜에서 지정한 개울 수 이후 날짜 데이터를 반환한다.
SELECT SYSDATE, ADD_MONTHS(SYSDATE, 3)
FROM DUAL;
MONTHS_BETWEEN
두 날짜 데이터를 입력하고 개월 수 차이를 반환한다.
NEXT_DAY: 돌아오는 요일
LAST_DAY: 달의 마지막 날짜
ROUND. TRUNC: 날짜 또한 반올림과 버림 가능하다.
4. 형 변환 함수
날짜 리터럴
- DATE ‘YYYY-MM-DD’
- TIMESTAMP ‘YYYY-MM-DD HH24:MI:SS.FF’
TO_CHAR 함수
날짜와 숫자 데이터를 문자 데이터로 변환하는 함수
SELECT TO_CHAR(SYSDATE, 'YYYY/MM/DD HH24:MI:SS') AS 현재날짜시간
FROM DUAL;
TO_NUMBER 함수
문자 데이터를 숫자 데이터로 변환하는 함수
TO_DATE 함수
문자 데이터를 날짜 데이터로 변환하는 함수
5. NULL 처리 함수
NVL
첫번째 데이터가 NULL이 아니면 그대로 반환하고 NULL이라면 입력 데이터에 지정한 값을 반환한다.
NVL2
NULL이 아닐 때 반환할 데이터를 추가로 지정할 수 있다.
6. DECODE 함수와 CASE문
DECODE([검사 대상],
` [조건1], [조건1일 때 반환 결과],
` [조건3], [조건2일 때 반환 결과],
` [조건3], [조건3일 때 반환 결과],
[위 조건에 일치하지 않는 경우의 반환 결과])
CASE문
SELECT EMPNO, ENAME, JOB, SAL,
CASE JOB
WHEN 'MANAGER' THEN SAL * 1.1
WHEN 'SALESMAN' THEN SAL * 1.05
ELSE SAL * 1.03
END AS UPSAL
FROM EMP;