SQL

[SQLD] NULL, 단일행 문자형 함수, 윈도우 함수 등 정리

온한온 2025. 3. 7. 17:13

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