CONTAINS
CONTAINS
CONTAINS() 함수는 expr1이 expr2를 포함하면 true를 반환해요. 두 표현식 모두 텍스트 또는 바이너리 표현식이어야 해요.
팁
검색 최적화 서비스(search optimization service)를 사용하면 이 함수를 호출하는 쿼리의 성능을 높일 수 있어요. 자세한 내용은 검색 최적화 서비스를 참고하세요.
본문
문법
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 |
+-----------------------------------------+-----------------------------------------+