`

For all entries使用中注意的问题

    博客分类:
  • sap
阅读更多
1.SELECT CARRID
          CONNID
          FLDATE
          PRICE
    FROM SFLIGHT
    INTO TABLE GT_tab
     FOR ALL ENTRIES IN GT_SFLIGHT
   WHERE CARRID = GT_SFLIGHT-CARRID
     AND CONNID = GT_SFLIGHT-CONNID.
在 WHERE 条件中,GT_SFLIGHT-CARRID和GT_SFLIGHT-CONNID这些列将用作占位符。该 SELECT 语句的结果集是 SELECT 语句的所有结果集的联合,这些结果集是用内部表 GT_SFLIGHT 中的相应值在每一行上替换占位符的结果。

2.使用该语句,对于最后得出的结果集系统会自动删除重复行,也就是distinct的问题。因此如果你要保留重复行记录时,记得在SELECT语句中添加足够键值项目,以保证结果集中所需重复项目不会被删除。

3.FOR ALL ENTRIES IN后面使用的内表itab如果为空,系统将视为无条件选取,将当前CLIENT下所有记录选出。因此为避免无意义的全件检索,在使用该语句前一定要判断内部表itab是否为空,为空时不执行包含该语句的数据库检索处理。

4.由于itab-f实际上是作为占位符被替换,所以内部表itab中不要包含HEADER行,以免造成混淆,检索出错。

5.内部表itab中作为条件替换用项目的类型和长度,一定要和检索数据库中对应的项目相同,否则编译不能通过。

6.对于内部表itab中作为条件替换用项目,不能使用LIKE,BETWEEN,IN比较操作符。因为这些比较操作符都是不确定比较操作符(将选择条件设定在一个范围内),而FOR ALL ENTRIES IN语句的作用相当于将选择条件块全部并列开来,用OR连接,如果每个OR分支中又是不确定的范围,那么系统性能将大大降低,因此R/3系统在使用该语句时禁止使用不确定比较操作符。

7.使用该语句时,ORDER BY语句和HAVING语句将不能使用。

8.使用该语句时,除COUNT( * )以外的所有合计函数(MAX,MIN,AVG,SUM)都不能使用。

9.使用时,最好先按照选择条件字段排序,这样会改善performance.
分享到:
评论

相关推荐

    ABAP for all entries使用中注意的问题

    在ABAP编程环境中,"ABAP for all entries使用中注意的问题"这一主题深入探讨了在进行数据处理和数据库查询时,使用FOR ALL ENTRIES IN语句的一些关键注意事项和潜在陷阱。FOR ALL ENTRIES IN是一种强大的工具,允许...

    用FOR ALL ENTRIES IN 语句搜索 与用 IN语句搜索数据库效率对比.docx

    在SAP ABAP编程中,查询数据库记录时,有两个主要的搜索方法:`FOR ALL ENTRIES IN` 和 `IN` 语句。本文件通过一个实际的代码示例比较了这两种方法在执行效率上的差异。 首先,让我们了解两种语句的基本概念: 1. ...

    SAP命令大全

    ### SAP命令大全之ABAP "FOR ALLENTRIES IN" 使用指南 #### 一、引言 在SAP的ABAP编程环境中,为了处理复杂的数据库查询和数据管理任务,开发人员经常需要利用各种高级功能和技术。其中之一就是“FOR ALLENTRIES IN...

    ABAP编程中提高执行效率的几个技巧

    (1)必须要判断For All Entries In后面的内表是否为空,如果它为空的话,那么在where条件中的与内表中字段进行比较的结果全部为真,也就是全部满足条件,这会导致取出非常多的数据,极大地影响系统的性能。...

    ABAP报表性能优化注意事项

    - 避免在SELECT语句中使用函数,因为这可能导致数据库无法利用索引。 - 利用数据库的特性,如索引、物化视图、存储过程等,来进一步优化查询性能。 - 对于大数据量的处理,考虑分批处理(BATCH INPUT或MODIF ID)...

    提高ABAP 性能注意事项

    应尽量减少循环,或者优化循环结构,例如使用FOR ALL ENTRIES。 7. **SQL语句技巧**: - 将数据一次性取到内表中处理,避免多次数据库交互。 - 避免使用过多的INNER JOIN,因为JOIN操作会增加计算复杂性。若必须...

    abap逻辑数据库ABAP数据库操作

    OpenSQL是一种特定于SAP的数据库访问语言,它是跨平台的,可以在不同的数据库系统中使用,例如Oracle、DB2、SQL Server等,它提供了一套标准的SQL接口,从而允许开发者在不同数据库系统中编写相同的代码。...

    Abap效率.docx

    避免在SELECT中使用FOR ALL ENTRIES,特别是在处理大量数据时。同样,避免在循环中嵌套SELECT。 对于SELECT语句的顺序,有几点需要注意。JOIN操作时,先关联小表再关联大表。WHERE子句中优先使用索引和主键,按照...

    abap开发小规则和注意点

    16. FOR ALL ENTRIES IN。 17. ABAP 事件驱动机制:当你改变了屏幕之后,需要 MODIFY SCREEN,不然是无法改变的;先把各个事件写上,在分析具体代码写在那个事件下。 18. SUBMIT:直接执行程序,并且可以传送参数...

    Qt之QZipReader解压文件

    需要注意的是,QZipReader并不支持对ZIP文件的修改或创建,如果你需要对ZIP文件进行写入操作,应该考虑使用QZipWriter类。 总结一下,QZipReader是Qt库提供的一种方便的工具,用于读取和解压ZIP文件。通过实例化...

    ABAP select 语句

    在编写SELECT语句时,应考虑性能优化,如使用索引、避免全表扫描、合理使用INTO TABLE将结果存入内部表,以及在FOR ALL ENTRIES或DISTINCT子句中减少重复数据。 使用`INTO TABLE`可以将查询结果存储在内部表中,...

    abap SQL优化

    1. **简化查询**:直接在SELECT语句中使用WHERE子句来限制结果集,而不是先执行一个全表扫描再通过CHECK语句来过滤数据。 - **示例**: - **原始写法**: ```abap Select * from zflight. Check: zflight-airln...

    ABAP Performance

    9. "for all"条目(Use of "for all" entries):在更新或删除操作中,使用"for all"条目可以减少数据库调用,提高效率。 10. "where"子句的结构(Proper structure of "where" clause):优化“where”子句的结构...

    第10章 Qt 5网络与通信.ppt

    在 Qt 5 中,可以使用 QHostInfo 和 QNetworkInterface 类来获取本机的网络信息。QHostInfo 类提供了获取主机名和 IP 地址的功能,而 QNetworkInterface 类提供了获取网络接口信息的功能。 在上面的代码中,我们...

    js中遍历对象的属性和值的方法

    在JavaScript中,遍历对象的属性和值是常见的操作,特别是在处理数据或构建动态内容时。下面我们将深入探讨几种在JavaScript中...而`for...in`循环虽然简单,但要注意它会遍历整个原型链,可能会带来不必要的性能开销。

    AndroidZip4j-master_java_android_zip_Compression_

    for (ZipEntry entry : entries) { System.out.println(entry.getName()); } ``` - **解压缩ZIP文件**: ```java zipFile.extractAll("destinationFolder"); ``` - **加密ZIP文件**: ```java ...

    abap学习资料各种补充

    - **循环操作**: 在 FOR ALL ENTRIES 循环之前,需要对条件内表进行验证,以确保程序效率。 - **内表操作**: MODIFY 仅更新当前循环到的一条记录,而 APPEND 是新增一条记录。 #### 八、ABAP 程序创建与界面设计 -...

    DATAGUARE 配置与管理

    3.2 alter system set log_archive_dest_1='location=/oracle/oradata/orcl valid_for=(all_logfiles,all_roles) db_unique_name=orcl' scope=both; 3.3 alter system set log_archive_dest_2='service=standby lgwr...

    如何在vbs或vb6中使用包装器Karna.compression

    在VBScript和VB6中使用Karna.compression库可以极大地扩展你的编程能力,尤其是在处理文件压缩和解压缩任务时。Karna.compression是一个.NET包装器,它为VBScript和VB6开发者提供了方便的接口,用来操作Info-ZIP的库...

Global site tag (gtag.js) - Google Analytics