Oracle 내장함수
문자열 함수
CONCAT(str1, str2): 두 문자열을 결합합니다.
SUBSTR(str, start, length): 문자열의 일부를 추출합니다.
INSTR(str, substr): 문자열에서 하위 문자열의 위치를 찾습니다.
UPPER(str), LOWER(str), INITCAP(str) : 문자열을 대문자 또는 소문자로 변환합니다.
LENGTH(str): 문자열의 길이를 반환합니다.
CONCAT() : 두 문자열 결합합니다.
TRIM((삭제 옵션) (삭제할 문자) FROM 원본 문자열) : 특정 문자열 삭제합니다.
LTRIM(원본 문자열, (삭제할 문자)), RTRIM() : 특정 문자열 삭제합니다.
숫자 함수
ROUND(num), TRUNC(num): 소수점 이하를 반올림 또는 절삭합니다.
MOD(x, y): 나머지 연산을 수행합니다.
ABS(num): 숫자의 절대값을 반환합니다.
날짜 함수
SYSDATE: 현재 날짜와 시간을 반환합니다.
TO_DATE(str, format): 문자열을 날짜로 변환합니다.
MONTHS_BETWEEN(date1, date2): 두 날짜 간의 개월 수를 계산합니다.
TO_CHAR(날짜, 문자 형태) : 날짜 데이터를 문자 데이터로 변환합니다.
TRUNC(날짜, 버림 포맷) : 날짜를 특정 단위로 버립니다.
1
2
3
4
5
6
TRUNC(date, format) // 버릴 날짜, 버릴 단위를 지정(선택)
SELECT TRUNC(SYSDATE, 'HH24') FROM DUAL; // 현재 날짜에서 시간과 분을 버림
// 시간 부분이 00:00:00으로 설정됩니다.
NEXT_DAY(날짜, 요일) : 특정 날짜 이후로 다음에 오는 특정 요일의 날짜를 반환합니다.
1
2
SELECT NEXT_DAY(SYSDATE, 'FRIDAY') FROM DUAL;
// 현재 날짜를 기준으로 다음주 금요일 반환
LAST_DAY(날짜) : 해당 달의 마지막 날짜 반환합니다.
1
2
SELECT LAST_DAY(SYSDATE) FROM DUAL;
NULL 처리 함수
NVL(expr1, expr2): 첫 번째 식이 NULL인 경우 두 번째 식을 반환합니다.
1
2
3
SELECT id, name, NVL(age, 0) AS age_with_default
// 나이(age) 열에서 NULL인 값을 0으로 대체하여 결과를 조회
NVL2(expr1, expr2, expr3) : 첫번째 식이 NULL이 아닌 경우, 두번째 식이 반환됩니다. 첫번째 식이 Null인 경우, 3번째 식이 반환됩니다.
1
2
3
4
5
6
SELECT name,
NVL2(age, 'Age is not NULL', 'Age is NULL') AS age_status
FROM example_table;
// age 열이 NULL이면 'Age is NULL'을 반환하고, 그렇지 않으면 'Age is not NULL'을 반환
조건 함수
- DECODE(expression, search1, result1, search2, result2, …, default)
- 특정 값에 대한 조건을 지정하고, 조건에 따라 다른 값을 반환합니다.
1
2
3
4
5
6
SELECT name,
DECODE(age, NULL, 'Age is NULL', 'Age is not NULL') AS age_status
FROM example_table;
// age 열이 NULL이면 'Age is NULL'을 반환하고, 그렇지 않으면 'Age is not NULL'을 반환
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
…
ELSE default_result
END
:CASE 문은 여러 조건을 더 편리하게 다룰 수 있고, 더 복잡한 로직을 구현할 때 더 용이합니다.
1
2
3
4
5
6
7
8
SELECT name,
CASE
WHEN age IS NULL THEN 'Age is NULL'
ELSE 'Age is not NULL'
END AS age_status
FROM example_table;
집계 함수
SUM(column), AVG(column): 열의 합과 평균을 계산합니다.
MIN(column), MAX(column): 열의 최솟값과 최댓값을 찾습니다.
COUNT(column): 특정 열의 행 수를 계산합니다.