단일행 함수는 행마다 하나씩 결과를 내고, 집계 함수는 여러 행을 묶어 하나를 낸다.
왜 그런지까지
문자 함수(SUBSTR·INSTR·REPLACE·TRIM), 숫자 함수(ROUND·TRUNC·MOD), 날짜 함수, 변환 함수(TO_CHAR·TO_NUMBER·TO_DATE), NULL 함수(NVL·NVL2·COALESCE·NULLIF)가 있다. ROUND 는 반올림, TRUNC 는 자리를 잘라 버린다. 자료형이 다른 값을 비교하면 데이터베이스가 알아서 바꾸는데(암시적 형 변환), 이때 인덱스를 못 쓰게 되는 일이 있어 되도록 명시적으로 바꿔 준다.
반올림과 잘라내기를 나란히
ROUND vs TRUNC
ROUND 는 반올림하고 TRUNC 는 그냥 잘라 버린다. TRUNC(15.7) 은 15, ROUND(15.7) 은 16 이다.
NVL vs NVL2 vs NULLIF
NVL(a,b) 는 a 가 NULL 이면 b. NVL2(a,b,c) 는 a 가 NULL 이 아니면 b, NULL 이면 c. NULLIF(a,b) 는 a 와 b 가 같으면 NULL, 다르면 a.
넣어 두면 오늘 · 1일 · 3일 · 7일 · 14일 · 30일 간격으로 다시 물어봅니다