CONTAINS

CONTAINS

CONTAINS() 함수는 expr1이 expr2를 포함하면 true를 반환해요. 두 표현식 모두 텍스트 또는 바이너리 표현식이어야 해요.

팁

검색 최적화 서비스(search optimization service)를 사용하면 이 함수를 호출하는 쿼리의 성능을 높일 수 있어요. 자세한 내용은 검색 최적화 서비스를 참고하세요.

출처: Snowflake SQL Reference

본문

문법

CONTAINS( <expr1> , <expr2> )

인자

  • expr1 — 검색할 대상 텍스트 또는 바이너리 표현식이에요.
  • expr2 — 찾을 패턴 텍스트 또는 바이너리 표현식이에요.

반환

BOOLEAN 또는 NULL을 반환해요.

  • expr1 안에서 expr2를 찾으면 TRUE를 반환해요.
  • expr1 안에서 expr2를 찾지 못하면 FALSE를 반환해요.
  • 두 입력 표현식 중 하나가 NULL이면 NULL을 반환해요.

사용 메모

문자열을 둘 이상의 지정된 패턴과 비교할 때는 다음 함수를 사용할 수 있어요.

  • ILIKE ANY
  • LIKE ALL
  • LIKE ANY

정렬 규칙 세부 사항

모든 입력 인자의 정렬 규칙(collation) 지정이 호환되어야 해요.

이 함수는 다음 정렬 규칙 지정을 지원하지 않아요.

  • pi (구두점 무시, punctuation-insensitive).
  • cs-ai (대소문자 구분·악센트 무시, case-sensitive, accent-insensitive).

예제

이 예제들은 CONTAINS 함수를 사용해요.

컬럼 값이 문자열을 포함하는지 확인

문자열 값을 담은 단일 컬럼 테이블을 만들어요.

CREATE OR REPLACE TABLE strings_test (s VARCHAR);

INSERT INTO strings_test values
  ('coffee'),
  ('ice tea'),
  ('latte'),
  ('tea'),
  (NULL);

SELECT * from strings_test;
+---------+
| S       |
|---------|
| coffee  |
| ice tea |
| latte   |
| tea     |
| NULL    |
+---------+

컬럼 s의 값이 문자열 te를 포함하는지 확인해요.

SELECT * FROM strings_test WHERE CONTAINS(s, 'te');
+---------+
| S       |
|---------|
| ice tea |
| latte   |
| tea     |
+---------+

CONTAINS를 정렬 규칙과 함께 사용

다음 예제에서는 CONTAINS가 동일한 인자 값에 대해 서로 다른 정렬 규칙 지정으로 다른 결과를 반환해요.

SELECT CONTAINS(COLLATE('ñ', 'en-ci-ai'), 'n'),
       CONTAINS(COLLATE('ñ', 'es-ci-ai'), 'n');
+-----------------------------------------+-----------------------------------------+
| CONTAINS(COLLATE('Ñ', 'EN-CI-AI'), 'N') | CONTAINS(COLLATE('Ñ', 'ES-CI-AI'), 'N') |
|-----------------------------------------+-----------------------------------------|
| True                                    | False                                   |
+-----------------------------------------+-----------------------------------------+

더 알아보기