Database-Oracle/함수

조익준·2023년 4월 24일

Oracle

목록 보기
3/5

Oracle에는 다양한 함수가 있다. 종류는 크게 2가지로 나뉜다.

  1. 단일행 함수
  2. 복수행 함수

단일행 함수: 하나의 row당 하나의 결과값을 반환한다.

1-1. 단일행 문자함수

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

1-2 단일행 숫자함수

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;

1-3 단일행 날짜함수

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(칼럼명) // 최소값을 리턴한다.

profile
비가역적인사람

0개의 댓글