오늘은 함수를 살펴보겠다!
숫자, 문자 등 타입마다 다양한 함수들의 대표 사례를 확인할 것이다.
숫자 함수
괄호 안 : (숫자,자리수)
- ROUND (반올림)
SELECT ROUND(34.275,1) FROM DUAL; -> 34.3
SELECT ROUND(34.275,-1) FROM DUAL; -> 30
- TRUNC (절삭)
SELECT TRUNC(34.275,1) FROM DUAL; -> 34.2
- CEIL/FLOOR(올림/내림) : 정수로만 반환한다.
SELECT CEIL(34.275) FROM DUAL; -> 35
--ABS(절대값)
SELECT ABS(-123) FROM DUAL; ->123
--SIGN(양수 1,음수 -1,0은 0)
SELECT SIGN(100),SIGN(-100),SIGN(0) FROM DUAL;
문자 함수
- UPPER(소문자->대문자)
- LOWER(대문자->소문자)
SELECT * FROM DIVISION
WHERE NAME=UPPER('notebook'); 혹은 WHERE LOWER(NAME)='notebook';
순서는 전자가 더 빠르다. 후자는 컬럼 모두 변환하고 확인하기 때문이다.
- SUBSTR
SELECT SUBSTR('ABCDEFG',2,3) FROM DUAL; -> BCD
2번째 문자부터 3글자 출력
SELECT SUBSTR('ABCDEFG',-4) FROM DUAL; -> DEFG
뒤에서부터 4글자 출력
- INSTR
SELECT INSTR('ABCDEFG','D') FROM DUAL; -> 4
'D'가 위치하는 순서 출력
SELECT INSTR('AAAAAAA','A') FROM DUAL; -> 1. (뒤에가 모두 A여도 첫번째로 만나는 값의 순서를 읽음)
SELECT INSTR('AAAAAAA','c') FROM DUAL; -> -1. (찾는 값이 없으면 -1)
- RTRIM/LTRIM
SELECT RTRIM('WOWWWW','W') FROM DUAL; -> W
오른쪽부터 W의 값을 모두 지운다. 지우다가 W가 아닌 다른 문자를 만나면 종료
날짜 함수
날짜는 연산이 가능하다.
--SYSDATE (GETDATE())
SELECT SYSDATE FROM DUAL; -> 현재 컴퓨터의 날짜, 시간 출력
--더하기
SELECT SYSDATE + 5 FROM DUAL; -> 5를 더하면 5'일'이 더해진다.
--ROUND
SELECT STARTDATE,ROUND(STARTDATE,'YEAR') FROM PERSONNEL;
'YEAR', 즉 연도가 반올림되어진다.
1~4월이면 내려가고 5월 이후로는 반올림이 올라간다.
--MONTHS_BETWEEN
SELECT MONTHS_BETWEEN(SYSDATE,'1998/05/01') YEAR FROM DUAL;
현재 날짜와 입력한 날짜 사이의 달 수를 구한다.
--LAST_DAY
SELECT STARTDATE,LAST_DAY(STARTDATE) FROM PERSONNEL;
현재 시스템 날짜 달의 '말일'을 나타낸다.
'개발 교육 TIL > back-end' 카테고리의 다른 글
[오라클] ANY/ALL, 상관/하위쿼리, 테이블 생성+데이터 타입 (0) | 2022.01.28 |
---|---|
[오라클] JOIN문 (EQUI,INNER,OUTER,CROSS,SELF) (0) | 2022.01.27 |
[오라클] NULL, WHERE조건, 연산자/논리연산자 등 (0) | 2022.01.23 |
[오라클] 설치 command, 데이터베이스 초기 지식 (0) | 2022.01.23 |
[Java] Class클래스, 채팅창 프로그램(서버 기준) (0) | 2022.01.16 |