카테고리:

문자열 및 이진 함수 (일치/비교)

LIKE ALL

하나 이상의 지정된 모든 패턴과 문자열을 일치시키기 위해 대/소문자를 구분하는 비교를 수행합니다. 일치 항목을 필터링하려면 WHERE 절에서 이 함수를 사용하십시오.

검색 최적화 서비스를 사용하여 이 함수를 호출하는 쿼리의 성능을 향상할 수 있습니다. 자세한 내용은 검색 최적화 서비스 섹션을 참조하십시오.

참고 항목:

[ NOT ] LIKE

구문

<subject> LIKE ALL (<pattern1> [, <pattern2> ... ] ) [ ESCAPE <escape_char> ]
Copy

인자

필수:

subject

패턴과 비교할 문자열입니다.

pattern#

문자열이 비교되는 패턴입니다. 하나 이상의 패턴을 지정해야 합니다.

선택 사항:

escape_char

와일드카드가 와일드카드로서가 아니라 일반 문자로 해석되어야 함을 나타내기 위해 와일드카드 문자 앞에 삽입된 문자입니다.

반환

BOOLEAN 또는 NULL을 반환합니다. 일치하는 항목이 있으면 값은 TRUE입니다. 그렇지 않으면 FALSE를 반환합니다. 인자가 NULL인 경우 NULL을 반환합니다.

사용법 노트

  • SQL 와일드카드는 pattern 에서 지원됩니다.

    • 밑줄(_)은 단일 문자와 일치합니다.

    • 퍼센트 기호(%)는 0개 이상의 문자 시퀀스와 일치합니다.

  • pattern 의 와일드카드는 subject 에 줄 바꿈 문자(n)를 일치 항목으로서 포함합니다.

  • 패턴이 전체 입력 문자열(주제)과 일치하는 경우, 패턴은 일치 항목으로 간주됩니다. 문자열 내의 임의의 위치에서 시퀀스를 일치시키려면 패턴을 % 로 시작하고 끝내십시오(예: %something%).

  • NULL은 NULL과 일치하지 않습니다. 즉, 주제가 NULL이고 패턴 중 하나가 NULL이면 이는 일치 항목으로 간주되지 않습니다.

  • subject 앞에 NOT 논리 연산자를 사용하여 지정된 패턴과 모두 일치하지 않는 경우 TRUE를 반환하는 대/소문자 구분 비교를 수행할 수 있습니다.

  • 함수가 하위 쿼리와 함께 사용되는 경우, 하위 쿼리는 단일 행을 반환해야 합니다.

    예를 들어, 다음은 하위 쿼리가 단일 행을 반환하는 경우에만 사용해야 합니다.

    SELECT ...
        WHERE x LIKE ALL (SELECT ...)
    
    Copy

데이터 정렬 세부 정보

upper, lowertrim 데이터 정렬 사양만 지원됩니다. 로캘 조합(예: en-upper)을 제외하고 upper, lowertrim 과의 조합도 지원됩니다(예: upper-trimlower-trim).

참고

upper, lower 또는 trim 데이터 정렬 지정자가 있는 열에 이 함수를 사용하려면 계정에서 2024_02 동작 변경 번들을 활성화 해야 합니다.

계정에서 이 번들을 활성화하려면 다음 문을 실행하십시오.

SELECT SYSTEM$ENABLE_BEHAVIOR_CHANGE_BUNDLE('2024_02');
Copy

일부 문자열이 포함된 테이블을 만듭니다.

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);
Copy

이 쿼리는 와일드카드(%)가 있는 패턴을 사용하여 일치 항목을 찾는 방법을 보여줍니다.

SELECT * 
  FROM like_all_example 
  WHERE name LIKE ALL ('%Jo%oe%','J%e')
  ORDER BY name;
Copy
+-------------+                                                                 
| NAME        |
|-------------|
| Joe   Doe   |
| John  Dddoe |
+-------------+

이 쿼리는 성공적인 결과를 위해 모든 패턴이 일치해야 함을 보여줍니다.

SELECT * 
  FROM like_all_example 
  WHERE name LIKE ALL ('%Jo%oe%','J%n')
  ORDER BY name;
Copy
+------+                                                                        
| NAME |
|------|
+------+

이 쿼리는 일반적으로 와일드카드(_%)인 문자를 리터럴로 처리해야 함을 나타내기 위해 이스케이프 문자를 사용하는 방법을 보여줍니다.

SELECT * 
  FROM like_all_example 
  WHERE name LIKE ALL ('%J%h%^_do%', 'J%^%wn') ESCAPE '^'
  ORDER BY name;
Copy
+------------+                                                                  
| NAME       |
|------------|
| John_do%wn |
+------------+