SQL

like 연산자 % , _ , escape

에어팟맥스 2022. 7. 4. 19:59

       -------- ====== 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