9.5.9 LIKE述語(データベースアクセス機能)
- 形式
- 機能
-
LIKE述語(like predicate)は,パターン照合比較する。
- 一般規則
-
-
列指定のデータ型,LIKE右辺の値指定およびESCAPE指定の値指定のデータ型は,文字列でなければならない。
-
LIKE左辺の列指定,または右辺の値指定がナル値の場合,結果は不定となる。
-
LIKE右辺の値指定には,パターン照合比較するための文字列パターンを指定する。文字列パターンでは,下線(_)は,任意文字指示子を表し,パーセント(%)は,任意文字列指示子を表す。下線(_)でも,パーセント(%)でもない文字は,それ自身を表す。次にその例を示す。
列指定のデータ
'A'
…1
'ABC'
…2
'ABCD'
…3
'BCD'
…4
文字列パターン
真となるデータ
'ABC'
2
'%A%'
1,2,3
'_BC%'
2,3
'_C_'
4
-
ESCAPE指定の値指定は,文字列パターンでの下線(_),パーセント(%)をそれ自身を表す文字と認識するための1文字のエスケープ文字を指定する。例えば,'%A'という文字列で始まるデータを持つ列xをパターン照合比較する場合は,次のように指定すれば真となる。
x LIKE '\%A%' ESCAPE '\'
-
- 注意事項
-
文字列パターンを文字列型固定長形式の埋め込み変数で指定する場合,変数の長さより短い文字列パターンを設定すると,右側の空白を含めて文字列パターンとなるため注意が必要である。
例えば,'ABCD'というデータを持つ列xをパターン照合比較した場合,次のように文字列パターン'AB%'では結果が真とならない。
01 STR001 PIC X(4). : MOVE 'AB%' TO STR001. EXEC SQL SELECT .... x LIKE :STR001 .... 列xのデータ'ABCD'との 比較結果は偽 : MOVE 'AB%%' TO STR001. EXEC SQL SELECT .... x LIKE :STR001 .... 列xのデータ'ABCD'との 比較結果は真