SQL/개념
02. 오라클 함수
by Merware
2023. 5. 3.
01. 함수 (Functions)
1. 단일행 함수
- 한 행의 입력값에 대해 하나의 결과를 반환하는 함수.
1) 문자 관련 함수
- UPPER, LOWER, INITCAP : 대소문자 변환.
- LENGTH : 문자열의 길이를 반환.
- SUBSTR : 문자열에서 지정한 위치의 일부를 추출.
SELECT SUBSTR(ENAME, 1, 2) FROM EMP;
SELECT JOB, LENGTH(JOB), SUBSTR(JOB, -LENGTH(JOB)) FROM EMP;
- INSTR : 문자열 내에서 특정 문자의 위치를 반환.
- REPLACE : 문자열 내 특정 문자를 다른 문자로 대체.
- LPAD, RPAD : 문자열의 좌측 또는 우측을 특정 문자로 채움.
- CONCAT : 두 문자열을 결합.
- TRIM, LTRIM, RTRIM : 문자열에서 특정 문자를 제거.
SELECT TRIM(' _ _Oracle_ _ ') FROM DUAL;
2) 숫자 관련 함수
SELECT ROUND(1234.5678) FROM DUAL;
SELECT ROUND(1234.5678, -1) FROM DUAL;
- TRUNC : 숫자를 버림 처리.
- CEIL : 주어진 숫자보다 크거나 같은 가장 작은 정수 반환.
3) 날짜 관련 함수
- SYSDATE : 현재 날짜와 시간을 반환.
- ADD_MONTHS : 주어진 날짜에 특정 개월 수를 더함.
- MONTHS_BETWEEN : 두 날짜 간의 개월 수 차이를 반환.
- NEXT_DAY : 주어진 날짜 이후의 특정 요일을 반환.
- LAST_DAY : 주어진 날짜의 해당 월의 마지막 날을 반환.
- ROUND, TRUNC (날짜) : 날짜를 반올림 또는 버림 처리.
- TO_CHAR : 숫자나 날짜 데이터를 문자열로 변환.
- TO_NUMBER : 문자열 데이터를 숫자로 변환.
- TO_DATE : 문자열 데이터를 날짜로 변환.
4) NULL 처리 함수
- NVL : NULL일 경우 대체 값을 반환, 그렇지 않으면 원래 값을 반환.
- NVL2 : 첫 번째 인자가 NULL이 아닐 때는 두 번째 인자를, NULL일 때는 세 번째 인자를 반환.
5) 조건부 함수
- DECODE : 조건에 따라 다른 값을 반환.
- CASE : 여러 조건을 평가하여 조건에 맞는 값을 반환.
SELECT EMPNO, ENAME, JOB, SAL,
CASE JOB
WHEN 'MANAGER' THEN SAL*1.1
WHEN 'SALESMAN' THEN SAL*1.05
WHEN 'ANALYST' THEN SAL
ELSE SAL*1.03
END AS UPSAL
FROM EMP;
2. 다중행 함수
- 여러 행의 데이터를 하나의 결과로 집계하는 함수 (예: SUM, AVG, COUNT, MIN, MAX 등).