본문 바로가기
BOOK/오라클

함수

by "뭉치" 2021. 8. 2.
728x90

SQL 주요 함수

 

오라클에서 함수를 테스트하거나 계산하려해도 SELECT문을 사용해야 한다. 그러나 SELECT문에서 반드시 나와야 하는 절이 FROM 절이다. FROM절을 써야 한다는 의미는 반드시 테이블명이 있어야 한다는 말이기도 한다.

 

그러나 함수를 테스트하거나 계산식을 수행하려할때 일반 테이블명을 명시하기엔 어딘가 맞지 않는다. 어런 때를 대비해서 오라클에서는"DUAL" 이라는 가상의 테이블을 제공하고 있다.

 

다음과 같이 "DUAL" 테이블을 사용하여 계산식을 수행해 보자.

 

SELECT  10*10  FROM  DUAL

계산 결과인 "100"이 출력될 것이다.

 

이를 사용하여 각 함수를 테스트해 보자.

 

 

 

숫자 함수

 

1) ROUND(실수, 자리수)

 

첫번째 인자값에 해당되는 실수를 두번째 인자값인 자리수이하의 자리에서 반올림해 준다. 자리수 값이 음수이면 소수점 이상의 수에서 해당 자리 이하를 반올림한다.

 

SELECT ROUND(10.1254,2)  FROM  DUAL //--> 10.13
SELECT ROUND(1254.5678, -2)  FROM  DUAL // --> 1300

 

2) TRUNC(실수, 자리수)

 

지정된 자리 이하의 값을 버린다.자리수 값이 음수이면 소수점 이상의 수에서 해당 자리 이하를 버린다.

SELECT TRUNC(10.1299,2) FROM DUAL //--> 10.12
SELECT TRUNC(1254.1299, -2) FROM DUAL //-->1200

 

3) MOD(피제수, 제수)

 

피제수를 제수로 나눈 나머지를 구한다.

SELECT MOD(123, 5) FROM DUAL //-->3.

 

 

문자 함수

 

1) UPPER('문자열') / LOWER('문자열')

 

문자열을 모두 대문자 / 소문자로 바꾼다.

SELECT UPPER('ABcd') FROM DUAL //-->ABCD
SELECT LOWER('ABcd') FROM DUAL //-->abcd

 

2) INITCAP('문자열')

 

문자의 첫 글자만 대문자로 바꾼다.

 

3) LENGTH('문자열')

 

문자열의 길이를 알려준다.

 

4) INSTR('문자열', 찾는문자[, 시작위치, 회차])

 

찾는 문자를 시작위치부터 시작하며 회차번째에 발견된 위치값을 반환 한다. 시작위치와 회차가 생략되면 문자열의 처음부터 시작하여 첫번째 발견된 위치를 반환 한다.

 

SELECT INSTR('ABCABCABC', 'A', 1,2) FROM DUAL; //-->4
SELECT INSTR('ABCABCABC', 'CA', 1,2) FROM DUAL; //-->6

 

5) SUBSTR('문자열', 시작위치, 갯수)

 

문자열의 일부분을 추출하여 가져온다. 시작 위치가 음수이면 뒤에서 부터 가져온다.

 

SELECT SUBSTR('123456-1234567',1,2) FROM DUAL; //-->12
SELECT SUBSTR('123456-7890123',-7,2) FROM DUAL; //-->78

 

6) LTRIM(문자열, 문자) / RTRIM(문자열, 문자)

 

문자열에서 빈 공백이나 문자를 제거하는 함수

 

SELECT LTRIM('    ABC') FROM DUAL; //-->ABC
SELECT RTRIM('ABC   ') FROM DUAL; //-->ABC
SELECT LTRIM('CABC', 'C') FROM DUAL; // -> ABC
SELECT RTRIM('CABC', 'C') FROM DUAL; // -> CAB

 

7) TRIM(문자 FROM 문자열)

 

문자열의 앞뒤에서 문자를 제거한다.

 

SELECT   TRIM('A'  FROM  'ABCBA') FROM DUAL; //-->BCB
SELEC  TRIM('  ABCBA  ') FROM DUAL; //-->ABCBA

 

 

날짜 관련 함수

 

함수명 의미
SYSDATE 시스템의 현재 날짜를 가져온다. select SYSDATE from dual; ==> 오늘날짜
select SYSDATE + 1 from dual ; ==> 내일날짜
MONTHS_BETWEEN(sdate, edate) 날짜와 날짜 사이의 개월을 계산한다. select MONTHS_BETWEEN(SYSDATE, '08.01.01') from dual
ADD_MONTHS(date, month) 날짜에 개월을 더한 날짜 계산 select ADD_MONTHS(SYSDATE, 6) from daul
NEXT_DAY(date, day) 날짜 후의 첫 요일의 날짜를 계산 select NEXT_DAY(sysdate,'월') from dual
LAST_DAY(date) 월의 마지막 날짜를 계산 select LAST_DAY(sysdate) from dual
ROUND 날짜를 반올림  
TRUNC 날짜를 절삭  

 

728x90

'BOOK > 오라클' 카테고리의 다른 글

외래키(Foreign Key)  (0) 2021.08.02
기본키(Primary Key)  (0) 2021.08.02
데이터조회  (0) 2021.08.02
데이터삭제  (0) 2021.08.02
데이터수정  (0) 2021.08.02

댓글