우리는 가끔 특정 문자를 포함한 데이터를 찾고 싶을 때가 있다.
오라클에서는 LIKE를 이용하면 간단하게 해결된다.
LIKE 사용법
SELECT PLAYER_NAME FROM PLAYER WHERE PLAYER_NAME LIKE '김%';
와일드카드(%)는 모든 문자가 와도 상관없다.
LIKE '김%'를 통해 김씨로 시작하는 플레이어 이름을 찾았다.
SELECT PLAYER_NAME FROM PLAYER WHERE PLAYER_NAME LIKE '김_';
특정 문자열 자릿수를 제한해서 찾고 싶다면 언더바(_)를 사용하면 된다.
LIKE '김_'를 통해 김씨로 시작하지만 외자인 플레이어 이름을 찾았다.
SELECT PLAYER_NAME FROM PLAYER WHERE PLAYER_NAME NOT LIKE '김%';
-- 표준 NOT LIKE
SELECT PLAYER_NAME FROM PLAYER WHERE NOT PLAYER_NAME LIKE '김%';
특정 문자열을 포함하지 않는 문자열을 찾고 싶다면 NOT LIKE를 사용하면 된다.
NOT LIKE를 통해 김씨로 시작하지 않는 플레이어 이름을 찾았다.
LIKE 여러개(OR, REGEXP_LIKE)
SELECT PLAYER_NAME FROM PLAYER WHERE PLAYER_NAME LIKE '김%' OR PLAYER_NAME LIKE '정%';
SELECT PLAYER_NAME FROM PLAYER WHERE REGEXP_LIKE(PLAYER_NAME, '^김|^정');
LIKE 여러개를 사용하려면 OR이나 REGEXP_LIKE를 사용하면 된다.
REGEXP_LIKE는 오라클 10g부터 지원하는 함수이다.
^는 표현식의 시작, |는 OR조건을 의미한다.
'DB > 오라클(Oracle)' 카테고리의 다른 글
[Oracle] 오라클 숫자 함수(ABS, SIGN, MOD, CEIL) (0) | 2023.11.28 |
---|---|
[Oracle] 오라클 NULL 관련 함수(NVL, NVL2, NULLIF, COALESCE) (2) | 2023.11.27 |
[Oracle] 오라클 문자열 합치기(CONCAT, ||) (0) | 2023.11.24 |
[Oracle] 오라클 별칭(AS) 사용법 (0) | 2023.11.23 |
오라클 TCL(COMMIT, ROLLBACK, SAVEPOINT) (0) | 2023.11.21 |