*.함수
- 집계함수
- 문자/숫자/날짜 함수
- 형변환함수(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')

Posted by 말없제이
,