COBOL2002 言語 拡張仕様編
- 形式
- 機能
- 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'との
比較結果は真
All Rights Reserved. Copyright (C) 2003, 2013, Hitachi, Ltd.