LIKE ALL
LIKE ALL
하나 이상의 지정된 패턴 모두에 대해 문자열을 대소문자 구분 비교하여 일치 여부를 판단해요. WHERE 절에서 이 함수를 사용해 일치 항목을 필터링해요.
본문
팁: 검색 최적화 서비스(Search Optimization Service)를 사용하면 이 함수를 호출하는 쿼리의 성능을 개선할 수 있어요. 자세한 내용은 검색 최적화 서비스 문서를 참고해요.
참고 항목: [NOT] LIKE
구문 (Syntax)
LIKE ALL (
[,
... ] ) [ ESCAPE ]
인자 (Arguments)
필수:
subject— 패턴(들)과 비교할 문자열이에요.pattern#— 문자열을 비교할 패턴(들)이에요. 최소한 하나의 패턴을 지정해야 해요.
선택:
escape_char— 와일드카드 문자 앞에 삽입하여, 해당 와일드카드를 와일드카드가 아닌 일반 문자로 해석하도록 나타내는 문자(들)이에요.
반환 값 (Returns)
BOOLEAN 값 또는 NULL을 반환해요:
- 일치하면 TRUE를 반환해요.
- 일치하지 않으면 FALSE를 반환해요.
- 어떤 인자가 NULL이면 NULL을 반환해요.
사용 노트 (Usage Notes)
-
패턴 매칭에 단일 따옴표 또는 다른 특수 문자를 포함하려면 백슬래시 이스케이프 시퀀스를 사용할 수 있어요.
-
NULL은 NULL과 일치하지 않아요. 즉, subject가 NULL이고 패턴 중 하나가 NULL이면, 그것은 일치로 간주되지 않아요.
-
subject앞에 NOT 논리 연산자를 사용하여, 지정된 패턴 중 어느 것과도 일치하지 않으면 TRUE를 반환하는 대소문자 구분 비교를 수행할 수 있어요. -
pattern에서 SQL 와일드카드가 지원돼요:- 밑줄(
_)은 임의의 단일 문자와 일치해요. - 백분율 기호(
%)는 0개 이상의 문자 시퀀스와 일치해요.
- 밑줄(
-
pattern의 와일드카드는subject의 줄바꿈 문자(n)도 일치로 포함해요. -
패턴이 전체 입력 문자열(subject)과 일치하면 패턴이 일치한 것으로 간주돼요. 문자열 안 어디서든 시퀀스를 일치시키려면 패턴을
%로 시작하고 끝내세요 (예:%something%). -
함수를 서브쿼리와 함께 사용하면, 서브쿼리는 단일 행을 반환해야 해요.
예를 들어 다음은 서브쿼리가 단일 행을 반환할 때만 사용해야 해요:
SELECT ...
WHERE x LIKE ALL (SELECT ...)
- 이 함수가 지원하는 것보다 더 복잡한 패턴 매칭이 필요하면 정규식 함수를 대신 사용할 수 있어요.
정렬 규칙 세부사항 (Collation Details)
upper, lower, trim 정렬 규칙 지정만 지원돼요. upper, lower, trim과의 조합도 지원되지만(예: upper-trim, lower-trim), 로케일 조합(예: en-upper)은 제외돼요.
예제 (Examples)
일부 문자열을 포함하는 테이블 생성:
CREATE OR REPLACE TABLE like_all_example(name VARCHAR(20));
INSERT INTO like_all_example VALUES
('John Dddoe'),
('Joe Doe'),
('John_do%wn'),
('Joe down'),
('Tom Doe'),
('Tim down'),
(null);
이 쿼리는 와일드카드(%)가 있는 패턴을 사용해 일치 항목을 찾는 방법을 보여줘요:
SELECT *
FROM like_all_example
WHERE name LIKE ALL ('%Jo%oe%','J%e')
ORDER BY name;
+-------------+
| NAME |
|-------------|
| Joe Doe |
| John Dddoe |
+-------------+
이 쿼리는 성공적인 결과를 위해 모든 패턴이 일치해야 한다는 것을 보여줘요:
SELECT *
FROM like_all_example
WHERE name LIKE ALL ('%Jo%oe%','J%n')
ORDER BY name;
+------+
| NAME |
|------|
+------+
이 쿼리는 보통 와일드카드인 문자(_와 %)를 리터럴로 취급해야 한다는 것을 나타내기 위해 이스케이프 문자를 사용하는 방법을 보여줘요:
SELECT *
FROM like_all_example
WHERE name LIKE ALL ('%J%h%^_do%', 'J%^%wn') ESCAPE '^'
ORDER BY name;
+------------+
| NAME |
|------------|
| John_do%wn |
+------------+
더 알아보기
- Snowflake 문자열 및 이진 함수 — 관련 문자열 함수 전체 목록