- カテゴリ:
文字列とバイナリ関数 (マッチング/比較)
[ NOT ] ILIKE¶
大文字小文字を区別せずに比較し、文字列が指定したパターンに一致するかしないかを判定します。大文字と小文字を区別しない一致では、代わりに LIKE を使用します。
LIKE、 ILIKE、 RLIKE はすべて、同様の操作を実行します。ただし、 RLIKE は、LIKE および ILIKEで使用される SQL パターン構文の代わりに POSIX ERE (拡張正規表現)構文を使用します。
Tip
検索最適化サービスを使用すると、この関数を呼び出すクエリのパフォーマンスを向上させることができます。詳細については、 検索最適化サービス をご参照ください。
- こちらもご覧ください:
構文¶
<subject> [ NOT ] ILIKE <pattern> [ ESCAPE <escape> ]
ILIKE( <subject> , <pattern> [ , <escape> ] )
引数¶
必須:
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 '\\';
エスケープ文字の使用例、特にエスケープ文字としてのバックスラッシュについては、 LIKE 関数 の例をご参照ください。
照合の詳細¶
upper
、 lower
、 trim
照合順序仕様のみがサポートされています。 upper
、 lower
、 trim
の組み合わせもサポートされています(例: upper-trim
と lower-trim
)。ただし、ロケールの組み合わせは除きます(例: en-upper
)。
注釈
upper
、 lower
、または trim
照合順序指定子を持つ列でこの関数を使用するには、 アカウントで2024_02動作変更バンドルを有効にする 必要があります。
アカウントでこのバンドルを有効にするには、以下のステートメントを実行します。
SELECT SYSTEM$ENABLE_BEHAVIOR_CHANGE_BUNDLE('2024_02');
例¶
CREATE OR REPLACE TABLE ilike_ex(name VARCHAR(20)); INSERT INTO ilike_ex VALUES ('John Dddoe'), ('Joe Doe'), ('John_down'), ('Joe down'), (null);SELECT * FROM ilike_ex WHERE name ILIKE '%j%h%do%' ORDER BY 1;+-------------+ | NAME | |-------------| | John Dddoe | | John_down | +-------------+SELECT * FROM ilike_ex WHERE name NOT ILIKE '%j%h%do%' ORDER BY 1;+-----------+ | NAME | |-----------| | Joe Doe | | Joe down | +-----------+SELECT * FROM ilike_ex WHERE name ILIKE '%j%h%^_do%' ESCAPE '^' ORDER BY 1;+-----------+ | NAME | |-----------| | John_down | +-----------+