!--a11y-->

デフォルトキー以外のキーを使用して標準テーブルからエントリを読み込む場合は、通常のライナー検索の代わりにバイナリ検索を使用することができます。バイナリ検索を使用するには、対応する READ 命令に BINARY SEARCH オプションを含めます。
READ TABLE <itab> WITH KEY <k1> =
<f1>...<kn> = <fn> <result>
BINARY SEARCH.
標準テーブルは、指定した検索キーによって昇順でソートする必要があります。BINARY SEARCH オプションを使用すると、ソートテーブルの場合と同等の速さで標準テーブルのエントリにそのテーブルのキーを使用してアクセスすることができます。

REPORT demo_int_tables_read_index_bin.
DATA: BEGIN OF line,
col1 TYPE i,
col2 TYPE i,
END OF line.
DATA itab LIKE STANDARD TABLE OF line.
DO 4
TIMES.
line-col1 = sy-index.
line-col2 = sy-index ** 2.
APPEND line TO itab.
ENDDO.
SORT itab BY col2.
READ TABLE itab WITH KEY col2 = 16 INTO line BINARY SEARCH.
WRITE: 'SY-SUBRC =', sy-subrc.
出力は以下のようになります。
SY-SUBRC = 0
標準テーブルに平方数の一覧が書き込まれ、項目 COL2 の昇順でソートされます。READ 命令では、バイナリ検索によって COL2 の値が 16 の行がテーブルで検索されます。