'substr'에 해당되는 글 1건

  1. 2008.04.17 ORACLE-여러가지 함수들

ROUND() 반올림 함수

SELECT ROUND(45.275,1) FROM DUAL;
--결과 : 45.3

  1    2    3    4   .   5   6   7
 -4  -3   -2  -1   0   1   2   3
ROUND 함수는 양수 자리의 반올림은 그 자리에서 소수점 아래의 반올림은
그 뒷자리에서 반올림을 한다.

여기서 FROM 다음 DUAL이라는 테이블이 궁금할 것 같은데요.
DUAL 테이블은 조회를 하기 위한 형식적인 테이블임.

TRUNC() 함수
SELECT TRUNC(45.245,2) FROM DUAL;
-- 결과 : 45.24

SIGN() 함수
양수 1, 음수 -1, 0은 0을 반환한다.
SELECT SIGN(100), SIGN(0), SIGN(-100) FROM DUAL;
결과 : 순서대로 1 0 -1

SUBSTR()
문자 추출함수
SELECT SUBSTR('ABCDEFG', 1,3) FROM DUAL; 결과 : ABC
SELECT SUBSTR('ABCDEFG', 3,2) FROM DUAL; 결과 : CD
SELECT SUBSTR('ABCDEFG', -3,2) FROM DUAL; 결과 : EF
SELECT SUBSTR('ABCDEFG', -3) FROM DUAL; 결과 : EFG
SELECT SUBSTR('ABCDEFG', -5) FROM DUAL; 결과 : CDEFG

INSTR()
문자의 위치값을 반환
SELECT INSTR('ABCDEFG', 'C') FROM DUAL; 결과 : 3

RTRIM(), LTRIM()
좌, 우측에서 특정문자를 제거한다.
SELECT RTRIM('ABBBBB', 'B') FROM DUAL; 결과 : A
SELECT RTRIM('A     ', ' ') FROM DUAL; 결과 : A
SELECT LTRIM('BBBABB', 'B') FROM DUAL; 결과 : ABB

변환 함수
TO_CHAR(숫자나 날짜를 문자로 변환)

MM : 달수(10)
MON : 3문자  달이름(MAR)
MONTH : 달의 완벽한 이름(MARCH)
DD : 달의 날짜수(22)
D: 주의 일수(2)
DY: 3문자 요일이름(MON)
DAY: 월의 완벽한 이름(MONTH)
YYYY: 4문자 년도(2007)
YY : 2문자 년도(07)
RM : 로마식 달수(IX)

SELECT SYSDATE, TO_CHAR(SYSDATE,'D') FROM DUAL;  결과 : 5
SELECT SYSDATE, TO_CHAR(SYSDATE,'DY') FROM DUAL; 결과 : THU
SELECT SYSDATE, TO_CHAR(SYSDATE,'RM') FROM DUAL; 결과 : IV
SELECT SYSDATE, TO_CHAR(SYSDATE,'YYYY') FROM DUAL; 결과 : 2008
SELECT SYSDATE, TO_CHAR(SYSDATE,'YY') FROM DUAL; 결과 : 08
SELECT SYSDATE, TO_CHAR(SYSDATE,'DD') FROM DUAL; 결과 : 17
SELECT SYSDATE, TO_CHAR(SYSDATE,'YY DD') FROM DUAL; 결과 : 08 17

시간 형식 요소
HH, HH12 : 12시간
HH24 : 24시간
MI:분
SS : 초
SSSSS: 초의 자리수
AM, PM : 오전, 오후
A.M., P.M. : 오전, 오후

SELECT  TO_CHAR(SYSDATE,'HH24:MI:SSSS') FROM DUAL; 결과 : 14:26:1717
SELECT  TO_CHAR(SYSDATE,'AMHH:MI') FROM DUAL; 결과 : PM02:26
SELECT  TO_CHAR(SYSDATE,'AM HH:MI') FROM DUAL; 결과 : PM 02:26
SELECT  TO_CHAR(SYSDATE,'P.M. HH:MI') FROM DUAL; 결과 : P.M. 02:26

SP : 서수
TH : 서수
SELECT SYSDATE, TO_CHAR(SYSDATE, 'DD') FROM DUAL; 결과 : 17
SELECT SYSDATE, TO_CHAR(SYSDATE, 'DDSP') FROM DUAL; 결과 : SEVENTEEN
SELECT SYSDATE, TO_CHAR(SYSDATE, 'DDTH') FROM DUAL; 결과 : 17TH
SELECT SYSDATE, TO_CHAR(SYSDATE, 'DDSPTH') FROM DUAL; 결과 : SEVENTEEN

REPLACE()
주어진 문자열을 특정 문자열로 교체한다.
SELECT * FROM EMP;

사용자 삽입 이미지

JOB에 포함된 'MAN'을 'PERSON'으로 바꿔라
SELECT EMPNO, JOB, REPLACE(JOB, 'MAN', 'PERSON') FROM EMP;
사용자 삽입 이미지

이와에도 많은 함수들이 있지만 공부하면서 하나씩 익혀보는 것도 재미가 있을 것이라고 생각하며
이상..마칩니다.

Posted by 원철연(체르니)
,