SAP abap SELECT *

 

尽量不要使用Select *。

 

程序的可读性差就不多说了。

 

在写程序的过程中,我们通常会用到一张表中的很多字段,于是图方便在定义结构体的时候就直接的

DATA: BEGIN OF GT_ITAB OCCURS 0.

               INCLUDE ***

               ***

               ***

          END OF GT_ITAB.

 

在数据选择的时候就为了方便而是用  SELECT * INTO CORRESPONDING FIELDS OF TABLE ITAB.在代码编写的时候使用这样的方式是一种很不好的习惯,一不小心会产生很难排查的错误。 尤其是在 from 语句中试用的还是 tab_a  inner join tab_b inner join tab_c 这样的多个表进行连接的时候。
我们知道 SELECT * INTO CORRESPONDING FIELDS OF TABLE ITAB,他们是根据字段的名进行一一的匹配的,我们也知道在SAP的表里面通常会有很多同名的字段,比如关联字段,保留字段等。在这个时候,内标中的字段会和哪儿源字段进行匹配呢?(关联字段倒还无所谓,因为多列是一样的值)

虽然在后期的应用中,很可能不回用到哪些保留字段。但在我们进行一些表级别的操作的时候,会产生一些困难,比如表的SORT,DELETE ADJACENT DUPLICATES FROM 的时候会对我们的数据处理带来一定的影响。
那么,SELECT * INTO CORRESPONDING FIELDS OF TABLE 的时候,多个重名列的匹配有什么规则的时候,到底怎么匹配的呢?  答案就是,匹配最后一个同名列。

所以,如果你非要使用SELECT * ,那么,请你在表的关联的时候,把目标表放在关联的最后。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值