✅ 단일행 함수란?


🔤 1. 문자 함수

함수 설명 예시
INITCAP() 첫 글자만 대문자로 변환 SELECT name, INITCAP(position) AS pos_title FROM professor;
LOWER() 모두 소문자 SELECT LOWER(email) AS email_lower FROM professor;
UPPER() 모두 대문자 SELECT UPPER(id) AS upper_id FROM professor;
LENGTH() / LENGTHB() 문자열 길이 / 바이트 '한글' → 2 / 4
CONCAT() 문자열 연결 (`
SUBSTR() / SUBSTRB() 문자열 일부 추출 SUBSTR('ABC',1,2) → 'AB'
INSTR() / INSTRB() 특정 문자의 위치 반환 INSTR('A#B#','B') → 3
LPAD() / RPAD() 좌/우측 문자 채움 LPAD('AB',4,'*') → '**AB'
LTRIM() / RTRIM() 좌/우측 문자 제거 LTRIM('*AB','*') → 'AB'
REPLACE() 문자열 치환 REPLACE('AB','A','E') → 'EB'

🔢 2. 숫자 함수

함수 설명 예시
ROUND() 반올림 ROUND(12.345,2) → 12.35
TRUNC() 버림 TRUNC(12.345,2) → 12.34
MOD() 나머지 구하기 MOD(12,10) → 2
CEIL() / FLOOR() 올림 / 내림 CEIL(12.3) → 13, FLOOR(12.3) → 12
POWER() 거듭제곱 POWER(3,2) → 9

📅 3. 날짜 함수

함수 설명
SYSDATE 현재 날짜 및 시간 반환
MONTHS_BETWEEN(d1, d2) 두 날짜 사이의 개월 수
ADD_MONTHS(d, n) 날짜에 개월 수 더하기
NEXT_DAY(d, '요일') 다음 요일 반환
LAST_DAY(d) 해당 월의 마지막 날짜 반환
ROUND(d) / TRUNC(d) 날짜 반올림 / 버림

🔁 4. 형 변환 함수

함수 설명
TO_CHAR() 날짜/숫자 → 문자
TO_NUMBER() 문자 → 숫자
TO_DATE() 문자 → 날짜

예시: TO_CHAR(SYSDATE, 'YYYY-MM-DD') → '2025-04-21'


🧠 5. 일반 함수

함수 설명 예시
NVL(expr1, expr2) NULL 값을 대체 NVL(comm, 0)
NVL2(expr1, expr2, expr3) NULL 여부에 따라 값 선택 NVL2(comm, sal+comm, sal*0)
DECODE(expr, val1, res1, ..., default) 매우 중요함!!!!!! 조건 분기문 DECODE(deptno, 101, '컴공', 102, '멀티', '기타')
CASE WHEN ... THEN ... ELSE ... END 가독성 좋은 조건문 사용