FOR ALL ENTRIES IN 语句用于从一个内部表中检索与另一个内部表中指定字段匹配的记录
语法格式
SELECT ... FOR ALL ENTRIES IN <itab> WHERE <cond>.
<itab>:插入目标数据内表
<cond>:查询条件
使用FOR ALL ENTRY IN 语句时,WHERE语句中使用的条件必须是itab内表中存在的字段
itab内表中的字段要与比较对象的表字段类型需要一致
提示Tips:尽量避免大数据量下使用 FOR ALL ENTRIES IN 语句,会影响查询效率
FOR ALL ENTRIES IN 语句关联itab内表的时候,如果itab内表为空,会把所需要查找的表中的所有数据查找出来,如果itab内表中有重复行,查找出来的结果集系统会自动删除重复行
示例1
输出结果:
代码逻辑:
① 声明了2个内表 gt_spfli 和 gt_sflight,1个结构体变量 gs_sflight
② 通过SELECT语句从表spfli中取出最多 1 行数据,并将其存储在内表gt_spfli
③ 通过SELECT语句从表sflight中检索与内表gt_spfli中的字段carrid和connid匹配的记录,并将其存储在内表gt_sflight中
④ 使用LOOP AT语句遍历内表gt_sflight中的所有行,将每一行的字段carrid和connid的值输出到屏幕上