데이터베이스/SQLD
[SQLD] 함수
seein2
2024. 11. 10. 15:11
문자함수
함수명 | 함수 기능 | 사용 예시 | 출력 | 설명 |
LOWER | 문자열을 소문자로 | LOWER('ABC') | abc | |
UPPER | 문자열을 대문자로 | UPPER('abc') | ABC |
SUBSTR | 문자열 중 m위치에서 n개 추출 |
SUBSTR('ABCDE', 2, 3) | BCD | 2번째부터 3개 |
SUBSTR('ABCDE', 2) | BCDE | 2번째부터 끝까지 | ||
SUBSTR('ABCDE', -4, 3) | BCD | 뒤에서 4번쨰부터 | ||
INSTR | 찾을 문자열의 위치 반환 | INSTR('A#B#C#', '#') | 2 | |
INSTR('A#B#C#', '#', 3, 2) | 6 | 3번째부터 두번 발견 | ||
INSTR('A#B#C#', '#', -3, 2) | 2 | 뒤에서 3번째부터 왼쪽으로 스캔 |
LTRIM | 문자열 왼쪽에서 삭제 | LTRIM('AABABAA', 'A') | BABAA | |
RTRIM | 문자열 오른쪽에서 삭제 | RTRIM('AABABAA', 'A') | AABAB | |
TRIM | 문자열 양쪽에서 삭제 | TRIM(' ABCDE ') | ABCDE | 공백 삭제 |
LPAD | 왼쪽에 문자열을 추가, n개의 길이 리턴 |
LPAD('ABC', 5, '*') | **ABC | |
RPAD | 오른쪽에 문자열을 추가, n개의 길이 리턴 |
RPAD('ABC', 5, '*') | ABC** |
CONCAT | 문자열 결합 | CONCAT('A', 'B') | AB | 두개만 가능 |
LENGTH | 문자열 길이 | LENGTH('ABCDE') | 5 | |
REPLACE | 문자열 치환 및 삭제 | REPLACE('ABBA', 'AB', 'ab') | abAB | |
TRANSLATE | 1대1로 치환 | TRANSLATE('ABBA', 'AB', 'ab) | abba |
숫자함수
함수명 | 함수 기능 | 사용 예시 | 출력 | 설명 |
ABS | 절대값 반환 | ABS(-1.5) | 1.5 | |
ROUND | 소수점 반올림 | ROUND(123.456, 2) | 123.46 | 소수점 둘째자리 반올림 |
ROUND(123.456, -2) | 100 | 음수이면 정수자리 반올림 | ||
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 | 나머지 | MOD(7, 2) | 1 | |
POWER | 거듭제곱 | POWER(2, 4) | 16 | 2의 4제곱 |
SQRT | 루트값 | SQRT(16) | 4 |
날짜함수
함수명 | 함수 기능 | 사용 예시 | 출력 | 설명 |
SYSDATE | 현재 날짜와 시간 | SYSDATE | 2024/11/10 14:35:46 | |
CURRENT_DATE | 현재 날짜 | CURRENT_DATE | 2024/11/10 | |
CURRENT_TIMESTAMP | 현재 타임스탬프 | CURRENT_TIMESTAMP | 2024/11/10 14:35:46 +09:00 | |
ADD_MONTHS | n개월 후 날짜 | ADD_MONTH(SYSDATE, 3) | 2025/02/10 14:36:46 | n이 음수면 n개월 이전 날짜 |
MONTHS_BETWEEN | 두 날짜 사이의 개월 수 | MONTHS_BETWEEN(SYSDATE, HIREDATE) | ex) 3.5 | 앞 날짜가 더 작으면 음수 리턴 |
LAST_DAY | 마지막 날짜 | LAST_DAY(SYSDATE) | 2024/11/30 | |
NEXT_DAY | 주어진 날짜 이후 지정된 요일의 첫번째 날짜 | NEXT_DAY(SYSDATE, 1) | 2024/11/17 | 1: 일요일, 2 월요일 .... |
ROUNT | 날짜 반올림 | ROUND(SYSDATE, 'MONTH') | 2024/11/01 0:00 | 월 이전자리에서 반올림 |
TRUNC | 날짜 버림 | TRUNC(SYSDATE, 'MONTH') | 2024/11/01 0:00 | 월 이전자리에서 버림 |
변환함수
함수명 | 함수 기능 | 사용 예시 | 출력 | 설명 |
TO_NUMBER | 숫자 타입으로 변경 | TO_NUMBER('100') | 100 | 문자100 -> 숫자100 |
TO_CHAR | 날짜의 포맷 변경 | TO_CHAR(SYSDATE, 'MM/DD-YYYY') | 11/10-2024 | |
숫자의 포맷 변경 | TO_CHAR(9000, '9,999') | 9,000 | 1000단위 구분 | |
TO_CHAR(9000, '09999') | 09000 | 총 5자리로 리턴 | ||
TO_DATE | 문자를 날짜로 리턴 | TO_DATE('2024/01/01', 'YYYY/MM/DD') |
2024/01/01 00:00:00 |
문자 -> 날짜 |
FORMAT | 날짜 포맷 변경 | FORMAT(GETDATE(), 'YYYY') | 2024 | |
CAST | 데이터타입 변환 | CAST('100' AS int) | 100 | 문자100 -> 숫자100 |
일반함수
함수명 | 함수 기능 | 사용 예시 | 출력 | 설명 |
DECODE | 매칭되는 값을 리턴 | DECODE(DEPTNO, 10, 'A', 'B') | A또는 B | DEPTNO가 10이면 A, 아니면 B |
NVL | null값을 치환 | NVL(COMM, 0) | COMM값 또는 0 | |
NVL2 | null값을 치환, null이 아닌 값도 치환 |
NVL2(COMM, COMM*1.1, 0) | COMM*1.1 또는 0 |
COMM값이 null이면 0, 아니면 COMM*1.1 |
COALESCE | null이 아닌 값 | COALESCE(NULL, 100) | 100 | |
ISNULL | 대상이 null이면 치환값 | ISNULL(NULL, 100) | 100 | |
NULLIF | 두 값이 같으면 null, 다르면 특정 값 |
NULLIF(10, 20) | 10 |