1 SORT ITAB BY '你想比较的列'. " 排序以增加二分查找的速度 2 READ TABLE itab with key 'itab中某列' = ‘目标列' BINARY SEARCH.
1. 如果使用READ TABLE语句来读取内部表数据,而不是简单看返回值判断是否存在, 那么在使用READ TABLE语句之前,一定要记得使用CLEAR语句清空内部表的工作区。
2. 使用READ TABLE语句的二分法搜索以代替标准顺序搜索时, 必须首先按关键字中指定的次序对内表进行排序。如果系统找到匹配指定关键字的多行,则读取索引最低的行。二分法搜索比线性搜索要快。因此,应尽可能将内表排序并且使用二分法搜索。如果找到有匹配关键字的条目,则将系统字段 SY-SUBRC 设置为0并且 SY-TABIX 包含该行的索引。否则,将 SY-SUBRC 设置为非零。
3. WITH KEY 中的检索条件比较符不能使用'<>'(不等于)。 如果只想取得内部表中不等于某条件的一条记录,那么请使用下面变通方法。 LOOP AT itab WHERE KEY <> 'XX'. 此处取得第一条记录。 EXIT. ENDLOOP. 如果在运行时 <KEY> 值为空,则统忽略该关键字段。另外可对关键字段指定偏移量和长度。