カテゴリ:

文字列とバイナリ関数 (マッチング/比較)

[ NOT ] ILIKE

大文字小文字を区別せずに比較し、文字列が指定したパターンに一致するかしないかを判定します。大文字と小文字を区別しない一致では、代わりに LIKE を使用します。

LIKE、 ILIKE、 RLIKE はすべて、同様の操作を実行します。ただし、 RLIKE は、LIKE および ILIKEで使用される SQL パターン構文の代わりに POSIX ERE (拡張正規表現)構文を使用します。

Tip

検索最適化サービスを使用すると、この関数を呼び出すクエリのパフォーマンスを向上させることができます。詳細については、 検索最適化サービス をご参照ください。

こちらもご覧ください:

[ NOT ] LIKE , [ NOT ] RLIKE

構文

<subject> [ NOT ] ILIKE <pattern> [ ESCAPE <escape> ]

ILIKE( <subject> , <pattern> [ , <escape> ] )
Copy

引数

必須:

subject

一致するサブジェクトです。

pattern

一致するパターンです。

オプション:

escape

ワイルドカードをワイルドカードとしてではなく通常の文字として解釈されることを示すために、ワイルドカード文字の前に挿入される文字です。

戻り値

BOOLEAN または NULL を返します。

  • ILIKE を指定した場合、一致するときの値は TRUE。それ以外の場合は、 FALSE を返します。

  • NOT ILIKE を指定した場合、一致しない時の値は TRUE。それ以外の場合は、 FALSE を返します。

  • ILIKE か NOT ILIKE のどちらかを指定した場合、引数の中に NULL があれば NULL を返します。

使用上の注意

  • SQL ワイルドカードは pattern でサポートされています。

    • アンダースコア(_)は、任意の1文字に一致します。

    • パーセント記号(%)は、ゼロ個以上の文字のシーケンスに一致します。

  • pattern のワイルドカードには、一致として subject の改行文字(\n)が含まれます。

  • ILIKE パターンマッチングは文字列全体をカバーします。文字列内の任意の場所でシーケンスを照合するには、パターンを % で開始および終了します。

  • デフォルトのエスケープ文字はありません。

  • 円記号をエスケープ文字として使用する場合、 ESCAPE 句で円記号のエスケープを指定する必要があります。例えば、次のコマンドは、エスケープ文字がバックスラッシュであることを指定し、そのエスケープ文字を使用してリテラルとして「%」を検索します(エスケープ文字なしでは、「%」はワイルドカードとして扱われます)。

    'SOMETHING%' ILIKE '%\\%%' ESCAPE '\\';
    
    Copy

    エスケープ文字の使用例、特にエスケープ文字としてのバックスラッシュについては、 LIKE 関数 の例をご参照ください。

照合の詳細

upperlowertrim 照合順序仕様のみがサポートされています。 upperlowertrim の組み合わせもサポートされています(例: upper-trimlower-trim)。ただし、ロケールの組み合わせは除きます(例: en-upper)。

注釈

upperlower、または trim 照合順序指定子を持つ列でこの関数を使用するには、 アカウントで2024_02動作変更バンドルを有効にする 必要があります。

アカウントでこのバンドルを有効にするには、以下のステートメントを実行します。

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

CREATE OR REPLACE TABLE ilike_ex(name VARCHAR(20));
INSERT INTO ilike_ex VALUES
      ('John  Dddoe'),
      ('Joe   Doe'),
      ('John_down'),
      ('Joe down'),
      (null);
Copy
SELECT * 
    FROM ilike_ex 
    WHERE name ILIKE '%j%h%do%'
    ORDER BY 1;
Copy
+-------------+                                                                 
| NAME        |
|-------------|
| John  Dddoe |
| John_down   |
+-------------+
SELECT *
    FROM ilike_ex
    WHERE name NOT ILIKE '%j%h%do%'
    ORDER BY 1;
Copy
+-----------+
| NAME      |
|-----------|
| Joe   Doe |
| Joe down  |
+-----------+
SELECT * 
    FROM ilike_ex 
    WHERE name ILIKE '%j%h%^_do%' ESCAPE '^'
    ORDER BY 1;
Copy
+-----------+                                                                   
| NAME      |
|-----------|
| John_down |
+-----------+