工作笔记之 SELECT 语句在 SAP ABAP 中的用法总结(上)(2)

简介: 日常开发过程中,最常用的语句可能就是查询语句了。那么如果从数据库表中查询数据呢?

INTO 语句大有可能

INTO target 后面跟的语句也有几种可能:

  • INTO: target 为结构体,即选择字段值到对应结构体,参考 SELECT SINGLE 示例
  • INTO CORRESPONDING FIELD OF: 系统会帮助我们选择和匹配对应的数据元素到相应的字段,要求自定义的字段名和系统的数据元素名称一样
  • INTO [ obj1, obj2 ...]: 我们可以选择一个与给定变量有关的字段。例如,如果我们想选择 carridconnid 字段,我们可以选择这些字段直接给相关的变量,而不是一个结构体或内表
  • INTO TABLE: 这个功能与 INTO 相似,但是我们跟的是一个表而不是一个结构体,因此可以获取多条数据
  • INTO CORRESPONDING FIELDS OF TABLE: 这本条功能与 INTO CORRESPONDING FIELD OF 类似,区别也是在于可以获得不止一条数据,后面跟的是能够存储多条结果的内表
  • APPPENDING:当我们想追加新的记录,而不是用新的选择来替换它们时,可以使用 APPENDING ,使用 INTO 的结果就是替换

我们用代码来看一下 INTOINTO CORRESPONDING FIELDS OF

 SELECT carrid connid  FROM sflight INTO TABLE gt_out.

这条语句会将 mandt 字段跳过,然后将 carridconnid 替换成前两条的结果,导致想要的数据和字段并不匹配,客户端代码变成了 AA 数据,如图:


image.png


这个原因是 SELECT 只会尝试按照顺序将数据装入给定的字段。


为了解决这个问题,就需要用到 CORRESPONDING FILEDS OF,如下:

 SELECT carrid connid  FROM sflight INTO CORRESPONDING FIELDS OF TABLE gt_out.

此时,查询的结果就会匹配了,没有查询的字段的值则为空,如下图:


image.png


PS:然后,与 INTO 相比, corresponding fields 有一个问题:在执行 SELECT 和向对应字段添加数据时,字段的比较会花费更多的时间,尤其是在海量数据时比较明显。

APPENDING 语句

APPENDING 语句支持在不删除之前选择的行的情况下增加新的行。

 SELECT carrid connid  FROM sflight INTO CORRESPONDING FIELDS OF TABLE gt_out.
 SELECT mandt carrid connid fldate price FROM sflight APPENDING CORRESPONDING FIELDS OF TABLE gt_out.

INTO 部分我们只选择了查询 connidcarrid 字段,但是在接下来的 SELECT 中,我们使用 APPENDING 语句追加了同样的行,而且增加了 mandtfldateprice 字段。


image.png


总结

本文总结了 SAP ABAP 开发中最常用的查询语句: SELECT 语句,并从主体的三个部分进行语法拆解,SELECT result FROM source INTO target ,并分别介绍了它们的功能和可能会使用的语句。今后也会将这段时间以来的笔记总结并分享,希望对今后从事 SAP 开发的人有所帮助!


相关文章
SAP ABAP 程序调用设置成后台作业模式
ABAP 程序调用设置成后台作业模式
533 0
|
XML JSON 监控
《李斌的笔记》SAP 全部文章目录、快速导航、持续更新
我把自己的全部文章都整理成目录,放在这篇文章中以实现快速导航,这样更方便阅读,本章内容持续更新。
300 0
|
SQL
SAP ABAP-OPENSQL-数值函数简介
S4中针对OPENSQL新提供一些函数
145 0
|
SQL
SAP ABAP-OPENSQL-字符串函数介绍
S4中SQL新语法字符串函数
225 0
|
SQL
SAP ABAP-OPENSQL-日期/时间戳函数
S4提供针对OPENSQL一些新的SQL函数调用,本文展示相关函数的使用
702 0
SAP ABAP-删除工序示例代码
ABAP-删除工序示例代码
178 0
SAP ABAP 检查事务码权限
检查用户是否有自开发事务码的权限
163 0
|
BI
SAP ABAP在线预览文档对象的开发实现
应用场景:有些定制化开发(报表/功能增强等)完成之后,客户需要将其操作手册或者相关文档放在某个报表的初始画面,供实际操作者在线查阅,当然这个功能也同样类似于模板的下载,这里就以在线预览(直接打开)为例进行说明。
231 0
SAP MM/FI_运费处理方式
常见的采购运费处理方式
SAP MM 途损处理方式
通常客户采购业务需求提到货物运输有损耗,需要针对此业务给出合理方案输出,下面笔者针对此类业务分析下各种实现方案的可行性!