Oracle에는 다양한 함수가 있다. 종류는 크게 2가지로 나뉜다.
단일행 함수: 하나의 row당 하나의 결과값을 반환한다.
CHR(아스키 코드) / 숫자를 문자로 반환
SQL>SELECT CHR(65) FROM DUAL ; //
CONCAT(칼럼명, '붙일문자') // 문자열 연결함수
SQL>SELECT CONCAT(ename, ' 님' ) name FROM emp ;
INITCAP('문자열') // 시작문자를 대문자로 바꿔준다
SQL>SELECT INITCAP( 'hello world') FROM DUAL
LOWER('문자열') // 문자열을 소문자로 바꿔준다.
SQL>SELECT LOWER( 'HELLO!' ) FROM DUAL;
UPPER('문자열') // 문자열을 대문자로 바꿔준다.
SQL>SELECT UPPER( 'hello!' ) FROM DUAL
LPAD('문자열', 전체 자리수, '남는자리를 채울 문자') // 왼쪽에 채운다
SELECT LPAD( 'HI', 10 , '*' ) FROM DUAL
RPAD('문자열', 전체 자리수, '남는자리를 채울 문자') /// 오른쪽에 채운다
SQL>SELECT RPAD( 'HELLO', 15 , '^' ) FROM DUAL;
LTRIM( '문자열' , '제거할문자' )
SQL>SELECT LTRIM( 'ABCD' , 'A' ) FROM DUAL
RTRIM('문자열', '제거할문자')
SQL>SELECT RTRIM( 'ACACBCD', 'CD') FROM DUAL;
REPLACE('문자열1', '문자열2', '문자열3') // 문자열1에 있는 문자열중 문자열2를 찾아 문자열3으로 바꿔준다.
SQL>SELECT REPLACE( 'Hello mimi' , 'mimi', 'mama' ) FROM DUAL
SUBSTR('문자열', N1, N2) // 문자열의 N1번째 위치에서 N2개만큼 문자열 빼오기
SQL>SELECT SUBSTR( 'ABCDEFGHIJ' , 3 , 5) FROM DUAL
LENGTH('문자열') // 문자열의 길이를 반환한다.
SQL>SELECT LENGTH( 'ABCDE' ) FROM DUAL
LEAST('문자열1', '문자열2', '문자열3') // 문자열 중에서 가장 앞의 값을 리턴한다.
SQL>SELECT LEAST( 'AB','ABC','D') FROM DUAL
NVL(칼럼명, 값) // 해당 칼럼이 NULL인 경우 정해진 값을 반환한다.
SQL>SELECT ename,NVL(comm, 0) FROM emp
ABS(숫자) // 숫자의 절대값을 반환한다.
SQL>SELECT ABS(-10) FROM DUAL;
CEIL(소수점이 있는 수) // 매개변수와 같거나 가장 큰 정수를 반환한다.
SELECT CEIL(5.9999) FROM DUAL;
FLOOR(소수점이 있는 수) // 매개변수와 같거나 가장 작은 정수를 반환한다.
SQL>SELECT FLOOR(3.2241) FROM DUAL;
ROUND(숫자, 자리수) // 숫자를 자리수 +1 번째 위치에서 반올림한다.
SQL>SELECT ROUND(3.22645, 2) FROM DUAL;
MOD(숫자1, 숫자2) // 숫자1을 숫자2로 나눈 나머지를 리턴한다.
SQL>SELECT MOD(10,3) FROM DUAL;
TRUNC(숫자1, 자리수) // 숫자1의 값을 소수점이하 자리수까지만 나타낸다. 나머지는 잘라낸다.
SQL>SELECT TRUNC(12.23532576 , 2) FROM DUAL;
SYSDATE // 현재 시간을 리턴한다.
SQL>SELECT SYSDATE FROM DUAL;
ADD_MONTHS(날짜, 더해질 월)
SQL>SELECT ADD_MONTHS(SYSDATE, 10) FROM DUAL;
LAST_DAY(날짜) // 해당날짜에 해당하는 달의 마지막 날짜를 반환한다.
SQL>SELECT LAST_DAY(SYSDATE) FROM DUAL
MONTHS_BETWEEN(날짜1, 날짜2) // 두 날짜 사이 월의 수
SQL>SELECT empno,MONTHS_BETWEEN(SYSDATE, HIREDATE) 근무개월
FROM emp
복수행 단일함수: 여러개의 row당 하나의 결과값을 반환한다.
COUNT(칼럼명) // 해당 칼럼이 존재하는 row의 개수를 반환하나 데이터가 NULLL인 칼럼은 세지 않는다.
SUM(칼럼명) // 해당 칼럼의 값을 모두 더한다.
AVG(칼럼명) // 해당 칼럼의 모든값을 더한 후, row로 나누어 평균값을 리턴한다. 단 NULL 칼럼은 제외한다.
MAX(칼럼명) // 최대값을 리턴한다.
MIN(칼럼명) // 최소값을 리턴한다.