| 함수명 | 함수기능 | 사용예시 | 출력 | 기타 |
|---|---|---|---|---|
| LOWER(대상) | 문자열을 소문자로 | LOWER('ABC') | abc | |
| UPPER(대상) | 문자열을 대문자로 | UPPER('abc') | ABC | |
| SUBSTR(대상, m, n) | 문자열 중 m위치에서 n개의 문자열 추출 | SUBSTR('ABCED', 2, 3) | BCD | n이 없는경우 끝까지 추출 |
| INSTR(대상, 찾을 문자열) | 대상에서 찾을 문자열 위치 반환 | INSTR('A#B#C#', '#', 3, 2) | 6 | 문자열의 3번째부터 두번째 #이 발견된 위치 반환 |
| LTRIM(대상, 삭제 문자열) | 문자열 중 특정 문자열을 왼쪽에서 삭제 | LTRIM('AABABAA', 'A') | BABAA | 삭제 문자열 생략 시 공백 삭제 |
| RTRIM(대상, 삭제 문자열) | 문자열 중 특정 문자열을 오른쪽에서 삭제 | RTRIM('AABABAA'), 'A') | AABAB | 삭제 문자열 생략 시 공백 삭제 |
| TRIM(대상) | 문자열 중 특정 문자열을 양쪽에서 삭제 | TRIM(' ABCDE') | ABCED | oracle TRIM은 공백만 삭제 가능 |
| LPAD(대상, n, 문자열) | 대상 왼쪽에 문자열을 추가하여 총 n의 길이 리턴 | LPAD('ABC', 5, '*') | **ABC | |
| RPAD(대상, n, 문자열) | 대상 오른쪽에 문자열을 추가하여 총 n의 길이 리턴 | RPAD('ABC', 5, '*') | ABC** | |
| CONCAT(대상1, 대상2) | 문자열 결합 | CONCAT('AB', 'CD') | ABCD | 2개의 인수만 전달 가능 |
| LENGTH(대상) | 문자열 길이 | LENGTH('ABCDE') | 5 | |
| REPLACE(대상, 찾을문자열, 바꿀문자열) | 문자열 치환 및 삭제 | REPLACE('ABBA', 'AB', 'ab') | abBa | 3번째 인수를 생략하거나 빈 문자열 전달 시 차증ㄹ 문자열 삭제 |
| TRANSLATE(대상, 찾을문자열, 바꿀문자열) | 글자를 1대1로 치환 | TRANSLATE('ABBA', 'AB', 'ab') | abba | 매칭되는 글자끼리 치환, 바꿀 문자열 생략 불가 |
숫자를 입력하면 숫자 값을 반환
단일행 함수 형태의 숫자함수
| 함수명 | 함수기능 | 사용예시 | 출력 | 기타 |
|---|---|---|---|---|
| ABS(숫자) | 절대값 반환 | ABS(-1.5) | 1.5 | |
| ROUND(숫자, 자리수) | 소수점 특정 자리에서 반올림 | ROUND(123.456, 2) | 123.46 | 자리수가 음수이면 정수자리에서 반올림 |
| TRUNC(숫자, 자리수) | 소수점 특정 자리에서 버림 | TRUNC(123.456.2) | 123.45 | |
| SIGN(숫자) | 숫자가 양수면 1, 음수면 -1, 0이면 0반환 | SIGN(-100) | -1 | |
| FLOOR(숫자) | 작거나 같은 최대 정수 리턴 | FLOOR(3.5) | 3 | |
| CEIL(숫자) | 크거나 같은 최소 정수 리턴 | CEIL(3.5) | 4 | |
| MOD(숫자1, 숫자2) | 숫자1을 숫자2로 나누어 나머지 반환 | MOD(7,2) | 1 | |
| POWER(m, n) | m의 n거듭제곱 | POWER(2, 4) | 16 | |
| SQRT(숫자) | 루트값 리턴 | SQRT(16) | 4 |
| 함수명 | 함수기능 | 사용예시 | 출력 | 기타 |
|---|---|---|---|---|
| SYSDATE | 현재 날짜와 시간 리턴 | SYSDATE | 2024/05/13 18:23:14 | 날짜 출력 형식에 따라 다르게 출력됨 |
| CURRENT_DATE | 현재 날짜 리턴 | CURRENT_DATE | 2024/05/13 | 날짜 출력 형식에 따라 다르게 출력됨 |
| CURRENT_TIMESTAMP | 현재 타임스탬프 리턴 | CURRENT_TIMESTAMP | 2024/05/13 18:23:14 +09:00 | |
| ADD_MONTHS(날짜, n) | 날짜에서 n개월 후 날짜 리턴 | ADD_MONTHS(SYSDATE, 3) | 2024/08/13 18:23:14 | n이 음수인 경우 n개월 이전 날짜 리턴 |
| LAST_DAY(날짜) | 주워진 월의 마지막 날짜 리턴 | LAST_DAY(SYSDATE) | 2024/05/31 18:23:14 | |
| NEXT_DAY(날짜, n) | 주어진 날짜 이후 지정된 요일의 첫 번째 날짜 리턴 | NEXT_DAY(SYSDATE, 1) | 2024/05/19 18:23:14 | 1(일요일), 2(월요일), ... 7(토요일) |
| ROUND(날짜, 자리수) | 날짜 반올림 | ROUND(SYSDATE, 'MONTH') | 2024-05-01 0:00 | 월 이전자리에서 반올림 |
| TRUNC(날짜, 자리수) | 날짜 버림 | TRUNC(SYSDATE, 'MONTH') | 2024-05-01 0:00 | 월 이전자리에서 버림 |
| 함수명 | 함수기능 | 사용예시 | 출력 | 기타 |
|---|---|---|---|---|
| TO_NUMBER(대상) | 숫자 타입으로 변경하여 리턴 | TO_NUMBER('100') | 100 | 문자 '100'을 숫자 100으로 리턴 |
| TO_CHAR(대상, 포맷) | 날짜포맷 변경 | TO_CHAR(SYSDATE, 'MM/DD-YYYY') | 05/13-2024 | |
| TO_CHAR(대상, 포맷) | 숫자의 포맷 변경 | TO_CHAR(9000, '9,999) | 9,000 | 천단위 구분기호 생성(문자타입으로 리턴) |
| TO_DATE(문자, 포맷) | 주어진 문자를 포맷 형식에 맞게 읽어 날짜로 리턴 | TO_DATE('2024/05/13', 'YYYY/MM/DD') | 2024/05/13 00:00:00 | 날짜로 리턴됨 |
| CAST(대상 AS 데이터타입) | 대상을 주어진 데이터타입으로 변환 | CAST('100' AS int | 100 | 문자 '100'을 숫자 100으로 리턴 |
| 함수명 | 함수기능 | 사용예시 | 출력 | 기타 |
|---|---|---|---|---|
| COUNT(대상) | 행의 수 리턴 | NULL 무시하고 연산 | ||
| SUM | 총 합 리턴 | NULL 무시하고 연산 | ||
| AVG | 평균 리턴 | NULL 무시하고 연산 | ||
| MIN | 최솟값 리턴 | NULL 무시하고 연산 | ||
| MAX | 최댓값 리턴 | NULL 무시하고 연산 | ||
| VARIANCE | 분산 리턴 | NULL 무시하고 연산 | ||
| STDDEV | 표준편차 리턴 | NULL 무시하고 연산 |
| 함수명 | 함수기능 | 사용예시 | 출력 | 기타 |
|---|---|---|---|---|
| DECODE(대상, 값1, 리턴1, 값2, 리턴2....) | 대상이 값1이면 리턴1, 값2이면 리턴2 .... | DECODE(DEPTNO, 10 ,A, B | A 또는 B | 대소비교에 따른 치환 불가, 리턴 생략시 null 리턴 |
| NVL(대상, 치환값) | 대상이 null이면 치환값으로 치환하여 리턴 | NVL(COMM, 0) | COMM 또는 0 리턴 | |
| NVL2(대상, 치환값1, 치환값2) | 대상이 null이면 치환값 2로 치환, null이 아니면 치환값 1로 치환 | NVL2(COMM, COMM+1, 0) | COMM+1 또는 0 리턴 | |
| COALESCE(대상1, 대상2, ...) | 대상1이 null이면 대상2, 대상2가 null이면 대상3 ... 모두가 null이면 그외 리턴값이 리턴 | COALESCE(DEPTNO1, DEPTNO2, 0) | DEPTNO1, DEPTNO2중 null아닌값 출력, 둘다 null인경우 마지막 인수값 0 출력 | |
| CASE문 | 조건별 치환 및 연산 수행 | CASE WHEN SAL < 2000 THEN 'C' ELSE 'A' END AS SAL_GRADE |
홍쌤의 데이터랩
SQLD 2과목 PART1. SQL 기본 완벽 정리 (2024년 신유형 반영) 강의에 대해
공부 및 개인적으로 정리한 글 입니다.