단일행 문자 함수: 문자 입력을 받아 문자나 숫자값을 반환한다.
1. 대소문자 변환함수
대보문자 변환은 보통 문자열을 비교해서 찾을 때 많이 사용한다.
a로 시작하는 사람을 찾고싶은데 oracle db는 대소문자를 구분하기때문에
LIKE = 'a%' 로 찾으면 대문자로 시작하는 사람은 안나온다.
따라서 DB에 들어있는 값을 변환해서 찾으면 모든 경우를 다 찾을 수 있다.
lower() 소문자로 변환
upper() 대문자로 변환
INITCAP() 맨 앞글자만 대문자고 나머지는 소문자
select emp_name
from emps
where LOWER(emp_name) = 'apple';
2. 문자조작 함수
1) concat(a, b)
: 두 인수를 연결해서 하나의 문자열로 반환.
select concat(first_name, last_name) as fullname
from employees;
# 연결 연산자를 사용하는것과 같다.
select first_name || last_name as fullname
from employees;
결과는 연결연산자를 사용하는것과 같지만, 2개 이상을 연결하고 싶은 경우 문법이 다르다.
# concat의 경우, 함수를 중첩.
select concat(concat(first_name, last_name), job_id) as fullname
from employees;
# 연결연산자의 경우, 연결연산자를 추가로 사용.
select first_name || last_name || job_id as fullname
from employees;
2) substr(반환할 문자열, 시작위치, 반환할 문자수)
: 문자열의 일부분을 반환.
반환할 문자수는 생략이 가능한데, 생략하면 시작위치부터 전부를 반환한다.
select last_name, substr(last_name, 1, 3) from employees;
last_name 문자열을
1의 위치부터 3글자까지만 출력된다.
ex) substr(주민번호, 1, 6) => 901225
ex) substr('Korea', -3, 2) => re
** substr의 시작위치에 음수가 있으면 끝에서부터 찾는다.
select employee_id, concat(first_name, last_name) name, length(last_name)
from employees
where substr(last_name, -1, 1) = 'g';
# = where last_name like '%g';
3) length(a)
: 문자열의 길이를 반환.
select last_name, length(last_name) from employees;
4) instr(a, b)
a문자열에서 b문자가 처음있는 위치값을 반환, 해당 문자가 없으면 0을 반환한다.
주로 처음 공백이나 특정 문자가 있는 위치를 찾을 때 사용한다.
select last_name, instr(last_name, 'a') from employees;
5) Ipad(a, b, c) / rpad(문자열, 전체자리수, 남는공간채울 문자)
: 오른쪽/왼쪽 정렬.
select lpad(last_name, 10, ' ') as last_name,
rpad(first_name, 10, ' ') as first_name
from employees;
6) replace(a, b, c)
: a문자열에서 b문자를 c로 교체.
select phone_number, replace(phone_number, '.', '-')
from employees;
010.1234.1111 -> 010-1234-1111
7) trim(a from b)
: b문자열에서 처음이나 끝에 특정문자 a가 있으면 a를 자르기.
ex) trim('H' from 'HHelloWorHlddH') => elloWorHldd
'Database > Oracle' 카테고리의 다른 글
Oracle DB) 제약 조건: Primary Key, Foreign key, Unique, Not Null, Check (0) | 2022.03.15 |
---|---|
Oracle DB) 데이터 정의어(DDL) - CREATE 테이블 생성, 복사 (0) | 2022.03.15 |
Oracle DB) SELECT 연습 (0) | 2022.03.02 |
OracleDB) SELECT문과 WHERE, ORDER BY (0) | 2022.03.02 |
Oracle DB) 데이터 조작어(DML)- insert, update, delete (0) | 2022.02.24 |