-------- ====== like 연산자 ====== --------
like 연산자와 함께 사용되는 %(퍼센트) 와 _(언더바) 를 wild character 라고 부른다.
like 연산자와 함께 사용되는 % 는 글자수, 글자유무와 관계없다는 말이다.
like 연산자와 함께 사용되는 _ 는 반드시 아무 글자 1개 만을 뜻하는 것이다.
select *
from employees
where department_id = 30;
select *
from employees
where department_id like 30;
-- employees 테이블에서 여자 1990년생과 남자 1991년생의 사원들만 사원번호, 사원명, 주민번호를 조회하기
select employee_id 사원번호
, first_name || ' ' || last_name 사원명
, jubun 주민번호
from employees
where jubun like '90____2%' OR jubun like '91____1%';
-- employees 테이블에서 first_name 컬럼의 값이 'J' 로 시작하는 사원들만
-- 사원번호, 이름, 성, 기본급여를 조회하기
select employee_id 사원번호
, first_name 이름
, last_name 성
, salary 기본급여
from employees
where first_name like 'J%';
-- employees 테이블에서 first_name 컬럼의 값이 's' 로 끝나는 사원들만
-- 사원번호, 이름, 성, 기본급여를 조회하기
select employee_id 사원번호
, first_name 이름
, last_name 성
, salary 기본급여
from employees
where first_name like '%s';
-- employees 테이블에서 first_name 컬럼의 값중에 'ee' 라는 글자가 들어있는 사원들만
-- 사원번호, 이름, 성, 기본급여를 조회하기
select employee_id 사원번호
, first_name 이름
, last_name 성
, salary 기본급여
from employees
where first_name like '%ee%';
-- employees 테이블에서 first_name 컬럼의 값중에 'e' 가 두개 이상 들어있는 사원들만
-- 사원번호, 이름, 성, 기본급여를 조회하기
select employee_id 사원번호
, first_name 이름
, last_name 성
, salary 기본급여
from employees
where first_name like '%e%e%';
-- employees 테이블에서 last_name 컬럼의 값이 첫글자는 'F' 이고 두번째 글자는 아무거나 이고
-- 세번째 글자는 소문자 'e' 이며 4번째 부터는 글자가 있든지 없든지 상관없는 사원들만
-- 사원번호, 이름, 성, 기본급여를 나타내세요.
select employee_id 사원번호
, first_name 이름
, last_name 성
, salary 기본급여
from employees
where last_name like 'F_e%';
===========================================================================================
-------- **** like 연산자와 함께 사용되는 %와 _인 wild character 의 기능을 escape(탈출) 시키기 **** --------
create table tbl_watch
(watchname Nvarchar2(10)
, bigo Nvarchar2(100)
);
-- Table TBL_WATCH이(가) 생성되었습니다.
insert into tbl_watch(watchname, bigo) values('금시계', '순금 99.99% 함유 고급시계');
-- 1 행 이(가) 삽입되었습니다.
insert into tbl_watch(watchname, bigo) values('은시계', '고객만족도 99.99점 획득한 고급시계');
-- 1 행 이(가) 삽입되었습니다.
commit;
-- 커밋 완료.
select *
from tbl_watch;
-- tbl_watch 테이블에서 bigo 컬럼에 99.99% 라는 글자가 들어있는 행만 출력하기
select *
from tbl_watch
where bigo like '%99.99%%';
select *
from tbl_watch
where bigo like '%99.99\%%' escape '\';
-- escape 문자로 '\' 를 주었으므로 '\' 다음에 나오는 wild character(% 또는 _) 는 wild character 기능에서 탈출시킨다.
-- 아무 글자든 상관없지만 혼동 우려가 있기 때문에 주로 특수문자를 사용
select *
from tbl_watch
where bigo like '%99.992%%' escape '2';
-- escape 문자로 '2' 를 주었으므로 '2' 다음에 나오는 wild character(% 또는 _) 는 wild character 기능에서 탈출시킨다.
select *
from tbl_watch
where bigo like '%99.99a%%' escape 'a';
-- escape 문자로 'a' 를 주었으므로 'a' 다음에 나오는 wild character(% 또는 _) 는 wild character 기능에서 탈출시킨다.
'SQL' 카테고리의 다른 글
단일행함수 - 숫자함수 (0) | 2022.07.04 |
---|---|
단일행 함수 - 문자 함수 (0) | 2022.07.04 |
DML[insert(입력) update(수정) delete(삭제), merge(병합)] (0) | 2022.07.04 |
날짜, 시각 (0) | 2022.07.04 |
범위 연산자 > < >= <= between A and B (0) | 2022.07.04 |