단일 행 함수
: 함수가 행마다 적용됨
- 숫자 함수
MOD(m,n)
: m을 n으로 나눈 나머지를 반환
SELECT MOD(10,3) "Modulus"
FROM dual;
ROUND(m,n)
: m을 소수점 n+1 자리에서 반올림한 결과를 반환한다.
SELECT ROUND(12.789,2) "ROUND"
FROM dual;
- 문자 함수
LOWER(char)
: 입력된 문자 값을 소문자로 변환
SELECT LOWER('Hello') "Lower"
FROM dual;
SUBSTR(str, pos, length)
: 문자열 str에서 pos부터 length까지의 문자를 반환
SELECT SUBSTR('Hello World',1,5) "Substr"
FROM dual;
# Hello 출력
- 날짜 함수
SYSDATE
: 현재 시스템 날짜를 반환
SELECT SYSDATE
FROM dual;
ADD_MONTH(date, integer)
: 지정한 date의 월에 integer를 더한 값 반환
LAST_DAY(date)
: 해당 월의 마지막 일을 반환
SELECT LAST_DAY(SYSDATE)
FROM dual;
MONTHS_BETWEEN(date1, date2)
: date1과 date2 사이의 기간을 월로 나타낸다. (date1이 date2보다 큰 값이다.)
- 변환 함수
TO_CHAR(date, 'format')
: DATE 관련 데이터 타입을 VARCHAR2 데이터 타입으로 변환
SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD')
FROM dual;
# 2021-02-18 출력
D | 요일 번호 (1~7) |
DAY | 요일명 |
DY | 요일명 약자 |
DD | 일 (1~31) |
HH | 시 (0~12) |
HH24 | 시 (0~23) |
MI | 분 (0~59) |
MM | 월 (1~12) |
MON | 월 이름 약자 |
MONTH | 월 이름 |
SS | 초 (0~59) |
YEAR | 년도 이름 (영문) |
Y YY YYY YYYY |
1자리 년도 2자리 년도 3자리 년도 4자리 년도 |
AM | 오전 (현재 시간이 오전인지 오후인지 상관 없음) |
PM | 오후 (현재 시간이 오전인지 오후인지 상관 없음) |
TO_CHAR(number, 'format')
: NUMBER 타입을 VARCHAR2 데이터 타입으로 변환 (format에 들어갈 숫자는 9로 표현)
SELECT TO_CHAR(10000, '$999,999')
FROM dual;
# $10,000 출력
- 기타 함수
DECODE(expr1, expr2 [expr3, expr4, ... ], result, default)
: expr1과 expr2를 비교하여 같으면 result를 반환, 같은게 전혀 없다면 default 값을 반환 (expr1과 expr2비교 후 같은게 없으면 expr3과 expr4 비교 ...)
CASE
: DECODE 함수와 기능은 흡사하나 여러 가지의 result를 반환할 수 있다.
CASE value
WHEN expr1 THEN result1
WHEN expr2 THEN result2
ELSE default
END CASE
NVL(expr1, expr2)
: expr1이 NULL인 경우 expr2의 값을 반환
'IT Study > Database' 카테고리의 다른 글
[Oracle] 테이블과 데이터 복사하기 (0) | 2021.02.25 |
---|---|
[Oracle] 데이터 사전 (0) | 2021.02.22 |
[Oracle] COMMENT 추가/수정/조회/삭제 (0) | 2021.02.20 |
[Oracle] SQL 기본 (0) | 2021.02.18 |
[Oracle] Join 조인 (0) | 2021.02.01 |
댓글