Oracle에서 자주 사용하는 함수를 정리한다.

🧩 NULL 처리 함수

값이 NULL일 때 다른 값으로 대체하고 싶으면 NVL(expr, replacement)를 사용한다.

NVL(name, 0)

NVL2(expr, not_null_value, null_value)는 값이 NULL인지 아닌지에 따라 두 가지 값을 선택할 때 사용한다.

NVL2(comm, 'Y', 'N')

🧭 날짜 변환 함수

문자열을 날짜 형식으로 바꾸고 싶을 때는 TO_DATE를 사용한다.

TO_DATE('20230101', 'YYYYMMDD')
TO_DATE('20230101', 'YYYYMMDD') + 1
TO_DATE('20200324173021', 'YYYYMMDDHH24MISS')

TO_NCHAR는 문자 타입을 유니코드 문자열로 변환할 때 사용한다.

🧱 문자열 처리 함수

문자열의 일부를 다른 문자열로 바꾸고 싶을 때는 REPLACE를 사용한다.

UPDATE mytable SET FILE_PATH = REPLACE(FILE_PATH, '\\', '/')

🧩 조건 분기 함수

DECODE는 간단한 조건 분기에 자주 사용한다.

DECODE(JOB, 'Developer', 1, 'teacher', 2, 0)

CASE WHEN 문이 더 복잡한 조건 분기에는 더 적합하다.

🌲 계층 쿼리

Oracle은 START WITHCONNECT BY를 이용해 계층 구조를 조회할 수 있다.

SELECT 컬럼명 FROM 테이블명
START WITH [최상위 조건]
CONNECT BY PRIOR [부모 컬럼] = [자식 컬럼];

예시

SELECT emp_id, emp_name, manager_id
FROM employee
START WITH emp_id = 1
CONNECT BY PRIOR emp_id = manager_id;

🧩 정리

  • NVL, NVL2는 NULL 처리에 사용한다.
  • TO_DATE는 문자열을 날짜로 바꾼다.
  • REPLACE는 문자열 치환에 사용한다.
  • DECODE는 간단한 조건 분기용이다.
  • START WITH, CONNECT BY는 계층 조회에 사용한다.

연결문서

댓글남기기