说明:for all entries使用方法与注意点。
1)作用: 为了避免多次重复的数据库查询(尤其是效率很低的嵌套查询),可以先将表XXX中符合条件的数据选择进一个内表,然后仅根据该内表中包含的字段值继续查询表XXX,这样大大减少了对于表XXX的查询次数。
格式: select … from [表] for all entries in [itab] where [表字段] = itab-字段 and …。
2) EX:
select carrid connid from spfli into table spfli_tab where cityfrom = 'Singapore'.
select carrid carrname from scarr into wa_scarr for all entries in spfli_tab
where carrid = spfli_tab-carrid.
endselect.
以上两个select不是嵌套关系,而是并列关系,从而提高了查询效率。
3) 注意: (1)应该先判断条件内表是否为空,若为空,则条件不在起筛选作用,会取出所有结果;
(2)会自动删除查询结果的重复行;
(3) 数据库字段与内表中的关联比较字段必须具有相同的类型和长度;
(4) 在where比较条件中不能使用操作符LIKE、BETWEEN和IN,也不能跟随ORDER BY排序字句。