SQL/개념

02. 오라클 함수

Merware 2023. 5. 3. 11:26

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) 숫자 관련 함수

  • ROUND : 숫자를 반올림.
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 등).