데이터베이스/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