SQLD를 공부하면서 잘 안 외워지거나 헷갈리는 함수들만 따로 정리했다.
Null 함수
함수명 | 설명 |
---|---|
NVL(인수1, 인수2) | 인수1이 NULL이면 인수2 반환 아니면 인수1 반환 |
NVL2(인수1, 인수2, 인수3) | 인수1이 NULL이면 인수3 반환, 아니면 인수2 반환 |
ISNULL(인수1, 인수2) | 인수1이 NULL이면 인수2 반환, 아니면 인수1 반환 |
NULLIF(인수1, 인수2) | 인수1이 인수2 이면 NULL 반환, 아니면 인수1 반환 |
COALESCE(표현식1, 표현식2, 표현식3,…) | NULL이 아닌 경우의 첫 번째 값을 리턴 ex) COALESCE(NULL, 1, 2) → 1 |
단일행 문자형 함수의 종류
- 오라클 함수명/SQL Server 함수명(구분이 없는 경우 공통 함수)
함수명 | 설명 |
---|---|
LOWER(문자열) | 문자열의 알파벳 문자를 소문자로 변경 |
UPPER(문자열) | 문자열의 알파벳 문자를 대문자로 변경 |
ASCII(문자열) | 문자나 숫자를 ASCII 코드 번호로 변경 |
CHR/CHAR(ASCII 번호) | ASCII 코드 번호를 문자나 숫자로 변경 |
CONCAT(문자열1, 문자열2) | 문자열1과 문자열 2를 연결(오라클, MySQL에서 유효한 함수) • 문자열1 || 문자열2 || 문자열3 (오라클) • 문자열1 + 문자열2 + 문자열3 (SQL Server) |
SUBSTR/SUBSTRING(문자열, m [, n]) | 문자열 중 m 위치에서 n개의 문자 길이에 해당하는 문자를 반환(n이 생략되면 마지막 문자까지) |
LENGTH/LEN(문자열) | 문자열의 개수를 숫자값으로 반환 |
LTRIM(문자열 [, 지정문자]) | 문자열의 첫 문자부터 확인해서 지정 문자가 나타나면 해당 문자를 제거(지정 문자 생략 시 공백값 디폴트) |
RTRIM(문자열 [, 지정문자]) | 문자열의 마지막부터 확인해서 지정 문자가 나타나면 해당 문자를 제거(지정 문자 생략 시 공백값 디폴트) |
TRIM([leading | trailing | both] 지정문자 FROM 문자열) | 문자열에서 머리말, 꼬리말, 양쪽에 있는 지정 문자를 제거(leading | trailing | both 생략 시 both가 디폴트) |
- SQL Server에서는 LTRIM, RTRIM, TRIM 함수에 지정 문자 사용 불가(공백만 제거 가능)
윈도우 함수
함수명 | 설명 |
---|---|
PERCENT_RANK | 파티션별 윈도우에서 제일 먼저 나오는 것을 0으로, 제일 늦게 나오는 것을 1로 해 값이 아닌 행의 순서별 백분율을 구하는 함수 |
DENSE_RANK | 순위를 구하는 함수로 동일한 순위를 하나의 등수로 취급 |
DUME_DIST | 파티션별 윈도우의 전체 건수에서 현재 행보다 작거나 같은 건수에 대한 누적 백분율을 구하는 함수 |
RANK | 파티션 내의 ORDER BY에 의한 순위를 구하는 함수로 동일한 순위에 대해서는 동일한 순위를 부여 |
RATIO_TO_REPORT | 파티션 내의 주어진 칼럼 값의 합계에 대한 행별 백분율을 소수점으로 구하는 함수 |
NTILE | 파티션별 전체 건수를 주어진 인자로 N등분한 결과를 반환 |
ROW_NUMBER | 동일한 값에 대해서도 유일한 순서를 부여 |
CUBE, GROUPING SETS 참고
- CUBE(x.col1, y.col2) = GROUPING SETS((x.col1, y.col2), (x.col1), (y.col2), ())
'SQL' 카테고리의 다른 글
[SQLD] SQL SELECT문은 DML? DQL? (0) | 2025.02.27 |
---|