예제 17
substr(컬럼명 또는 '문자열', 시작 위치, 추출할 문자의 개수(시작 문자열 포함한 개수))
from dual
가상의 테이블 환경을 구성하여 질의문의 결과를 확인할 때 사용합니다.
(함수로 실행되는 하나의 결과값을 보기 위함)
select lower(substr(ename,1,1))
from emp;
예제 18
select ename, length(ename)
from emp
where length(ename) >= 5;
예제 19
instr(컬럼명 또는 "문자열","검색할 문자열")
select ename
from emp
where instr(ename,'S) > 0; //'S'가 포함된 사원의 이름 출력
문자열 내에 포함되지 않으면, 0을 반환
예제 20
replace(컬럼명, 변경 전 문자, 변경 후 문자)
select ename, replace(sal, 0, '*')
from emp;
숫자 0번부터 3번까지는 *로 출력되도록 함
select ename, regex_replace(sal, '[0-3]','*')
from emp;
regexp_ : 정규식 표현으로, 뒤에 사용할 함수명을 입력 후 원하는 값을 출력
정규식 함수에 쓸 수 있는 옵션을 추가하여 사용 가능 EX) [0-3]
정규식 함수 : SQL의 기본 함수보다 넓은 범위로 함수를 적용할 때 많이 쓰임
SELECT ename, lpad(sal,10,'*')
FROM emp;
lpad/rpad(컬럼명, 출력할 전체 자릿수, 왼쪽/오른쪽 남은 공간에 채워넣을 문자)
ltrim/rtrim(컬럼명 또는 "문자열","잘라낼 문자열")
trim("잘라낼 문자열" from 컬럼명 또는 "문자열")
-- 잘라낼 문자열을 입력하지 않으면, 기본값으로 공백을 잘라낸다 (공백이 몇개가 들어갔는지 모를 때 사용)
EX) ename = 'JACK '으로 입력된 행을 찾고자 할때
SELECT ename, sal
FROM emp
WHERE rtrim(ename) = 'JACK';
round(데이터, 자릿수)
자릿수 : 소수 부분이 양의 정수, 정수 부분이 음의 정수 (소수점 = 0)
<-- 자릿수를 입력하지 않으면, 기본값으로 정수부분까지만 출력
SELECT round(876.567,1) //소수점 기준 왼쪽으로 첫째자리
FROM dual;
출력 : 876.6
SELECT ename, round(sal*0.12)
FROM emp;
trunc(데이터, 자릿수)
자릿수 : 잘라낸 뒤 남겨놓을 자리 값
SELECT trunc(876.567,1) //소수점 기준 왼쪽으로 첫째자리
FROM dual;
출력 : 876.5
SELECT ename, trunc(sal*0.12)
FROM emp;
mod(데이터, 나눌 수)
EX) 사원번호가 홀수인 사원들의 사원번호와 이름을 출력
SELECT empno, ename
FROM emp
WHERE mod(empno,2) = 1