SQL 특정 문자 찾기 - SQL teugjeong munja chajgi

오라클에서 특정 문자열의 포함 여부를 확인할 때 LIKE 연산자와 INSTR 함수를 사용한다. LIKE 연산자는 조건절(WHERE)에서 특정 문자열이 포함된 데이터를 찾을 때 사용하며, INSTR 함수는 특정 문자열이 포함된 위치를 반한 하므로 특정 문자열을 자를 때 많이 사용한다.

SQL 특정 문자 찾기 - SQL teugjeong munja chajgi
오라클 특정 문자열 포함 여부 확인

LIKE 연산자를 사용하여 문자열 포함 여부 확인

SELECT *
  FROM emp
 WHERE ename LIKE '%MI%'

SQL 특정 문자 찾기 - SQL teugjeong munja chajgi

LIKE 연산자는 조건절(WHERE)에서 컬럼에 특정 문자열이 포함되었는지 확인할 때 많이 사용한다.

문자열을 찾으면 true, 못찾으면 false를 반환한다.

CASE 표현식에 사용

SELECT empno
     , ename
     , CASE WHEN ename LIKE '%MI%' THEN 'Y'
            ELSE 'N'
       END AS "포함여부"
  FROM emp
 WHERE JOB = 'CLERK'

SQL 특정 문자 찾기 - SQL teugjeong munja chajgi

LIKE 연산자는 true, false를 반환하므로 CASE 표현식에 사용이 가능하다.

PL/SQL의 IF 문에서도 사용이 가능하다.

INSTR 함수를 사용하여 문자열 포함 여부 확인

SELECT *
  FROM emp
 WHERE INSTR(ename, 'MI') > 0

SQL 특정 문자 찾기 - SQL teugjeong munja chajgi

INSTR 함수는 특정 문자열을 찾은 위치를 정수형(숫자)으로 반환한다.

문자열을 찾으면 1이상, 못 찾으면 0을 반환한다.

조건절(WHERE)에서 문자열을 찾을 때 LIKE 연산자를 사용하는 것이 좋으며, INSTR 함수를 조건으로 사용해도 문제는 없으나 조건에 사용하는 컬럼이 인덱스 컬럼인 경우 속도에 영향이 있을 수 있으므로 확인 후 사용해야 한다.

CASE 표현식에 사용

SELECT empno
     , ename
     , INSTR(ename, 'MI')
     , CASE WHEN INSTR(ename, 'MI') > 0 THEN 'Y'
            ELSE 'N'
       END AS "포함여부"
  FROM emp
 WHERE JOB = 'CLERK'

SQL 특정 문자 찾기 - SQL teugjeong munja chajgi

INSTR 함수는 문자열을 찾은 위치를 정수형으로 반환하므로 CASE 표현식 외에도 DECODE, SUBSTR 함수 등 조금 더 다양한 연산에 활용이 가능하다.

문자열 자르기

SELECT empno
     , ename
     , INSTR(ename, 'M')
     , SUBSTR(ename, INSTR(ename, 'M'), 2)
  FROM emp
 WHERE JOB = 'CLERK'

SQL 특정 문자 찾기 - SQL teugjeong munja chajgi

INSTR 함수는 문자열을 자를때 많이 사용된다.

위의 예제는 성명(ename)에서 특정 문자("M")의 위치를 찾은 후 해당 위치에서 2자리의 문자를 자르는 방법이다.

예제쿼리(테이블포함).txt

0.00MB

LIKE 연산자와 INSTR 함수에 대해서 조금 더 자세히 알고 싶다면 아래의 포스팅을 읽어보면 된다.

[Oracle] 오라클 LIKE 사용법 완벽 정리 (여러개, 패턴, 대소문자)

오라클 SQL에서 LIKE 연산자는 자주 사용하는 구문 중 하나이다. 문자열에서 와일드카드(%)를 사용하여 원하는 문자가 포함된 자료를 쉽게 검색할 수 있다. 단순 검색 외에도 대문자 소문자 구분

gent.tistory.com

SQL 특정 문자 찾기 - SQL teugjeong munja chajgi

[Oracle] 오라클 INSTR 함수 사용법 완벽 정리 (CHARINDEX, IndexOf)

오라클에서는 문자열에서 원하는 문자를 찾을 때 INSTR 함수를 사용한다. INSTR 함수는 대소문자를 구별하여 문자를 검색하며, 여러 개의 문자를 찾을 때는 OR 연산자를 사용하면 된다. 해당 문자를

gent.tistory.com

SQL 특정 문자 찾기 - SQL teugjeong munja chajgi

● SELECT [컬럼명] FROM [테이블명] WHERE [컬럼명] LIKE '특정문자열%'

<example>

▶ '김' 으로 시작하는 사람을 모두 조회

 - SELECT id,name FROM member WHERE name LIKE '김%'

▶ '진'으로 끝나는 사람을 모두 조회

 - SELECT id,name FROM member WHERE name LIKE '%김'

● SELECT [컬럼명] FROM [테이블명] WHERE [컬럼명] LIKE '%특정문자열%'

▶ '프린터' 가 들어가는 제품을 모두 조회

 -  SELECT id,p_name FROM member WHERE p_name LIKE '%프린터%'

 ID

P_NAME 

 1

삼성프린터F

 2

프린터GS

● SELECT [컬럼명] FROM [테이블명] WHERE [컬럼명] LIKE '특정문자열?'

▶ '김' + 외자인 사람을 모두 조회

 -  SELECT id,name FROM member WHERE name LIKE '김?'

posted by Gap85

댓글을 달아 주세요