johnson_yao tech note

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

说明: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排序字句。

posted on 2011-04-21 16:56  johnson_yao  阅读(251)  评论(0编辑  收藏  举报