*.함수
- 집계함수
- 문자/숫자/날짜 함수
- 형변환함수(to_char/number/date)
- 명시적 함수
- 묵시적 함수
---
*.문자함수
instr('대상문자열',찾는문자,시작위치,몇번째것을 찾을건지);
substr('대상문자열',시작위치,length);
*.숫자함수
- round : 반올림 : round(123.17,1) -> 123.2
소수점 반올림수 : 순간해놓으면 나중에 아차하는.
3__6__2_._7_1_2;
-3_-2_-1__0 1 2
- trunc : 절삭 : trunc(123.17, 1) -> 123.1
select round(362.712,-2), round(362.712,0), round(362.712), round(362.712,1)
from dual
ROUND(362.712,-2) ROUND(362.712,0) ROUND(362.712) ROUND(362.712,1)
----------------- ---------------- -------------- ----------------
400 363 363 362.7
- mod : 나머지값 : mod(12,10) -> 2
- ceil : 지정한 값보다 큰수중 가장작은정수 : ceil(123.17) -> 124
- floor : 지정한 값보다 작은수중 가장큰정수 : floor(123.17) -> 123
select ceil(123.17), floor(123.17), ceil(-123.17), floor(-123.17), mod(12,10)
from dual
CEIL(123.17) FLOOR(123.17) CEIL(-123.17) FLOOR(-123.17) MOD(12,10)
------------ ------------- ------------- -------------- ----------
124 123 -123 -124 2
- sign : 기호를 반환. 양수이면 1, 0이면 0, 음수이면 -1..
SQL> select sign(10), sign(0), sign(-10)
2 from dual;
SIGN(10) SIGN(0) SIGN(-10)
---------- ---------- ----------
1 0 -1
*.데이터 타입의 변환
to_char(날짜, 날짜시간format')
to_char(숫자, 'formaht
select ename, sal, to_char(round(sal/13, 1),'999.9') as monthSal
from emp
order by sal asc
ENAME SAL MONTHS
---------- ---------- ------
SMITH 800 61.5
....
MARTIN 1250 96.2
MILLER 1300 100.0
to_date(' ', '날짜시간format') : 문자를 date형으로 변환.
=========================
1.자신의 생년월일을 년도4자리-월영문축약-일두자리 출력
select to_char(to_date('2079329','yyyymmdd'), 'yyyy-mon-dd') from dual
2.November27을 11월 27일로 출력
select to_char(to_date('November27','monthdd'), 'yy"월" dd"일"') from dual
select to_number('10') from dual
-- 20번 부서사원명, 부서번호 조회
select ename, deptno
from emp
where deptno=to_number('20')