SAP ABAP 里 FILTER 关键字的用法举例

简介: SAP ABAP 里 FILTER 关键字的用法举例

FILTER是ABAP中的一个关键字,用于在内部表中进行数据筛选和过滤,以便于提取所需的数据集。


FILTER关键字用于从内部表中筛选符合特定条件的数据行。它通过提供条件表达式,只返回满足条件的数据行,从而在不修改原始数据的情况下生成一个新的内部表。FILTER关键字在处理大量数据时非常有用,可以有效地减少内部表的大小,同时提高代码的可读性和可维护性。


REPORT ZJERRY_FILTER.
DATA: lt_spfli TYPE STANDARD TABLE OF spfli
       WITH NON-UNIQUE SORTED KEY carr_city COMPONENTS carrid,
      lt_lh TYPE TABLE OF spfli.
SELECT * INTO TABLE lt_spfli FROM spfli.
"data(lt) = FILTER #( lt_spfli using key carrid where carrid = '1' ).
lt_lh = FILTER #( lt_spfli using key carr_city where carrid = conv #( 'LH' ) ).
BREAK-POINT.

filter 之前:

7d019ac22637b0ac1359e1611cb5fe93.png

filter 之后:

26aa39796b9d56625da43e01aef6f15c.png

第二个例子:

report z.
TYPES: BEGIN OF ty_person,
           name type string,
           age type int4,
      end of ty_person.
data: lt_person type STANDARD TABLE OF ty_person
                        with NON-UNIQUE SORTED KEY person_key COMPONENTS age,
      lt_old1 like lt_person,
      lt_old2 like lt_person,
      ls_person type ty_person.
ls_person-name = 'Tom'. ls_person-age = '21'. INSERT ls_person into table lt_person.
ls_person-name = 'Jim'. ls_person-age = '62'. INSERT ls_person into table lt_person.
ls_person-name = 'Bob'. ls_person-age = '70'. INSERT ls_person into table lt_person.
ls_person-name = 'Kate'. ls_person-age = '30'. INSERT ls_person into table lt_person.
LOOP AT lt_person INTO ls_person WHERE age > 60.
   INSERT ls_person INTO TABLE lt_old1.
ENDLOOP.
lt_old2 = FILTER #( lt_person USING KEY person_key where age > 60 ).
IF lt_old1 = lt_old2.
   BREAK-POINT.
ENDIF.


总结


FILTER关键字是SAP ABAP中用于数据筛选和过滤的强大工具。它允许开发人员根据特定条件从内部表中提取所需的数据,从而简化了数据处理过程,提高了代码的可读性和可维护性。通过上述示例,我们可以看到FILTER关键字在实际开发中的应用,以及如何使用它来从员工信息中筛选出符合条件的数据。

相关文章
|
5月前
|
存储 安全 数据库
什么是 SAP ABAP 数据库表的 Display Maintenance Allowed with Restrictions
什么是 SAP ABAP 数据库表的 Display Maintenance Allowed with Restrictions
|
5月前
|
安全 API 数据库
SAP ABAP OData 中 Function import 的概念介绍
SAP ABAP OData 中 Function import 的概念介绍
|
5月前
|
SQL 负载均衡 监控
SAP ABAP DBSQL_SQL_ERROR 错误
SAP ABAP DBSQL_SQL_ERROR 错误
|
5月前
|
前端开发 数据库 开发者
如何在 SEGW 事务码里为 SAP ABAP OData 服务实现 Function Import 试读版
如何在 SEGW 事务码里为 SAP ABAP OData 服务实现 Function Import 试读版
SAP ABAP OData 服务里需要指定 guid 类型的请求参数时,正确语法是什么?
SAP ABAP OData 服务里需要指定 guid 类型的请求参数时,正确语法是什么?
|
5月前
|
SQL 监控 Oracle
SAP ABAP 系统错误 Return value of the database layer SQL dbsl rc 99
SAP ABAP 系统错误 Return value of the database layer SQL dbsl rc 99
|
5月前
|
存储 前端开发 Linux
在 SAP ABAP 系统里访问 FTP 服务器
在 SAP ABAP 系统里访问 FTP 服务器
|
5月前
|
存储 前端开发 应用服务中间件
使用 SAP ABAP 执行 FTP 操作
使用 SAP ABAP 执行 FTP 操作
|
5月前
|
BI 网络安全
如何使用 ABAPGit 在 SAP ABAP 系统安装 abap2xlsx 工具试读版
如何使用 ABAPGit 在 SAP ABAP 系统安装 abap2xlsx 工具试读版
|
5月前
|
监控 安全 应用服务中间件
SAP ABAP STRUST 事务码里的错误消息 - Local PSE does not match database original
SAP ABAP STRUST 事务码里的错误消息 - Local PSE does not match database original
下一篇
无影云桌面