機能
LIKE述語は、文字型データについて、照合比較を指定します。
記述形式
参照項番
値指定 → “2.3 値指定と相手指定”
文字値式 → “2.11.2 データ列値式”
数値式 → “2.11.1 数値式”
日時値式 → “2.11.3 日時値式”
一般規則
照合値のデータ型と、パターンのデータ型、およびエスケープ文字のデータ型は比較可能であることが必要です。比較可能なデータ型は“表2.58 比較可能なデータ型”を参照してください。なお、照合値が真数型、概数型または日時型の場合、文字列型に暗黙的な型変換を行います。
照合値およびパターンの値がNULLの場合、LIKE述語の結果は不定になります。照合値の値とパターンが一致する場合は真になり、一致しない場合は偽になります。
“x NOT LIKE y”と記述したものは、“NOT(x LIKE y)”と記述したのと同じ意味です。
照合値が数値データで、パターンに0を含んだ文字列データが指定された場合、LIKE述語の結果は偽になります。パターンには、照合値に指定した数値データと同じ形式の文字列データを指定する必要があります。
数値型の列“従業員番号”に、1が設定されているとします。
従業員番号 LIKE '01'
→ 結果は偽になります。
従業員番号 LIKE '1.00'
→ 結果は偽になります。
照合値が符号なしの数値データで、パターンに符号を含んだ文字列データが指定された場合、LIKE述語の結果は偽になります。パターンには、照合値に指定した数値データと同じ形式の文字列データを指定する必要があります。
数値型の列“従業員番号”に、1が設定されているとします。
従業員番号 LIKE '1'
→ 結果は真になります。
従業員番号 LIKE '+1'
→ 結果は偽になります。
照合値が日時値データで、パターンに日時が1桁の文字列データが指定された場合、LIKE述語の結果は偽になります。パターンには、照合値に指定した日時値データを、年は4桁、月、日、時、分および秒は2桁の形式の文字列データで指定する必要があります。
日時型の列“営業日”に、DATE'2007-1-2'が設定されているとします。
営業日 LIKE '2007-01-02'
→ 結果は真になります。
営業日 LIKE '2007-1-2'
→ 結果は偽になります。
照合値が文字列型、真数型、概数型または日時型の場合、パターンは照合比較する文字列を指定します。文字列中で、特殊文字のパーセント記号文字“%”と下線文字“_”、およびエスケープ文字は、照合値との比較において以下のように扱われます。
パーセント記号文字は、照合値のデータ中で0個以上の任意の文字の並びに対応します。
下線文字は、照合値のデータ中で1個の任意の文字に対応します。
パーセント記号文字および下線文字を任意の文字でなく、その文字として扱う場合には、これらの文字の直前にエスケープ文字を指定します。
照合値が各国語文字列型の場合、パターンは照合比較する各国語文字列を指定します。各国語文字のパーセント記号“%”と下線文字“_”、およびエスケープ文字の扱いは、文字列型の場合と同じです。
パターンの文字列または各国語文字列の中で、空白はデータの一部として照合比較の対象となります。
LIKE述語の各オペランドに動的パラメタ指定が指定された場合のDESCRIBE情報を以下に示します。
オペランド | DESCRIBE情報 |
---|---|
パターン | 照合値のデータ型が各国語文字列型の場合は各国語文字列型、それ以外の場合は文字列型 |
エスケープ文字 | 照合値のデータ型が各国語文字列型の場合は各国語文字列型、それ以外の場合は文字列型 |
備考.照合値が動的パラメタ指定の場合はエラーとなります。
使用例
パーセント記号文字をパターン中に指定する例です。
下線文字をパターン中に指定する例です。
エスケープ文字をパターン中に指定する例です。