Web develop/SQL

[SQL/ORACLE] 숫자 함수, 문자 함수

ForA 2019. 5. 28. 17:23
728x90

숫자함수

ROUND 함수

: 반올림 (4이하는 버리고 5이상은 올림)

round(기준데이터);  
round(기준데이터,소수점이하 자릿수 표현);

SELECT round(45.5) FROM dual; // 46  
SELECT round(45.573,2) FROM dual; // 45.57

TRUNC 함수

: 버림함수

trunc(기준데이터);  
trunc(기준데이터,소수점이하 자릿수 표현);

SELECT trunc(45.56) FROM dual; //45  
SELECT trunc(45.577,2) FROM dual; //45.57

FLOOR 함수

: 소수점 이하 버림함수 (실수 -> 정수)

floor(기준데이터);

SELECT floor(45.56) FROM dual; // 45  
SELECT floor(45.577,2) FROM dual; //에러

MOD 함수

: 나머지 구하기

mod(A,B) : A를 B로 나눈 나머지

SELECT mod(10,5) from dual; //0  
SELECT mod(10,3) from dual; //1  
SELECT mod(10,11) from dual;//10

mod(empno,2)=0; //짝수  
mod(empno,2)=1; //홀수

문자함수

UPPER

: 대문자

SELECT upper('Welcome to oracle') FROM dual;
--> WELCOME TO ORACLE

LOWER

: 소문자

SELECT lower('Welcome to oracle') FROM dual;
--> welcome to oracle

INITCAP

: 이니셜에 대한 대문자 변환

SELECT initcap('Welcome to ORACLE') FROM dual;
--> Welcome To Oracle
SELECT empno, initcap(ename) FROM emp WHERE deptno = 30

LENGTH

: 문자열 길이(문자갯수)

SELECT length('OracleSQL') FROM dual;
--> 9
SELECT lengthb('Oracle') FROM dual; --byte 저장공간
--> 6
SELECT lengthb('나길동') FROM dual;
--> 9

INSTR

: 특정문자가 출현하는 위치를 얻어오는 함수 (자바의 indexOf('a'))

instr(기준데이터, 특정문자)instr(기준데이터, 특정문자, 시작인덱스, 출현횟수)

SELECT instr('welcome to oracle', 'o') FROM dual; -- 첫번째 'o'=> 5
select instr('welcome to oracle', 'o', 1, 2) --두번째 'o'=> 10

SUBSTR

: 문자열 일부분 추출, 부분 문자열 얻기

substr(기준문자열, 시작인덱스, 부분문자열 갯수)

SELECT substr('welcome to oracle', 12, 6) FROM dual; 
-- 12번째 문자부터 6개의 문자 얻어오기

LPAD/RPAD

: 오른쪽/왼쪽 정렬 후 왼쪽/오른쪽 공백에 특정 문자 채우기

lpad(기준문자열, 전체길이, 채울문자)rpad(기준문자열, 전체길이, 채울문자)

SELECT lpad('oracle', 10, '#' ) FROM dual;
--> ####oracle
SELECT rpad('oracle', 10, '#' ) FROM dual;
--> oracle####

LTRIM/RTRIM

: 왼쪽/오른쪽(연속된) 공백 또는 (연속된) 특정문자 제거

SELECT length(ltrim(' oracle')) FROM dual; 
-- oracle 6
SELECT length(ltrim('aaaaoracle','a')) FROM dual; 
-- oracle 6 //'a' 특정문자 제거

TRIM

: 좌우의 연속된 공백을 제거해 주는 함수

SELECT length(trim(' oracle ')) FROM dual; 
-- oracle 6