4.6.3 内表数据处理
4.6.3.1 初始化表
4.6.3.2 INSERT增加内表数据
INSERT可以按内表的具体字段向表中插入一行或多行数据。
逐行填充内表情况:
使用条件:要在内表现有行之前插入新行时,请用INSERT语句。
语法结构:
INSERT [ <wa> INTO | INITIAL LINE INTO ] <itab> [ INDEX <idx> ].
将内表内容复制到另外一个内表中情况:
使用条件:要将内表行插入另外一个内表中,使用INSERT语句。
语法结构:
INSERT LINES OF <itab1> [ FROM <n1> ] [ TO <n2> ] INTO <itab2> [ INDEX <idx> ].
注意:以上为插入内表
4.6.3.3 APPEND增加内表数据
APPEND语句用于向现有内表增加单个行或多个行。
逐行填充内表情况:
使用条件:要将内表仅用于存储数据,出于性能方面的考虑,使用APPEND
语法结构:
APPEND [ <wa> TO | INITIAL LINE TO ] <itab>.
将内表内容复制到另外一个内表中情况:
使用条件:要将内表行附加到另外一个内表中,使用APPEND语句。
语法结构:
APPEND LINES OF <itab1> [ FROM <n1> ] [ TO <n2> ] TO <itab2>.
注意:以上为附加内表行
4.6.3.4 COLLECT增加内表数据
逐行填充内表情况:
使用条件:要计算数字字段之和或要确保内表中没有出现重复条目,使用COLLECT语句。
语法结构:
COLLECT [ <wa> INTO ] <itab>.
4.6.3.5 MOVE增加内表数据
将内表内容复制到另外一个内表中情况:
使用条件:要将内表条目内容复制到另一个内表中,并覆盖该目标表格,使用MOVE语句。
语法结构1:
MOVE < itab1> TO <itab2>.
语法结构2:
< itab2> = <itab1>.
注意:以上为复制内表
4.6.3.6 Open SQL增加内表数据
通过Open SQL将数据表中的数据按条件查询后放入内表中,从而增加内表数据。
语法结构:
SELECT … INTO TABLE <itab>.
SELECT … APPENDING TABLE <itab>.
4.6.3.7 MODIFY更改数据
MODIFY 直接修改内表数据,按内表位置或者具体内表字段值相等条件修改内表数据。
语法结构:
MODIFY itab [ FROM wa ] [ INDEX idx ] [ TRANSPORTING f1…fn ] WHERE cond.
4.6.3.8 DELET删除数据
DELET删除内表数据。
情形1:按具体值删除
语法结构:
DELETE TABLE itab WITH TABLE KEY k1=v1…kn=vn.
情形2:参考其他内表值删除
语法结构:
DELETE TABLE itab [ FROM wa].
情形3:删除具体行数据
语法结构:
DELETE itab INDEX idx.
情形4:删除具体行数范围间数据
语法结构:
DELETE itab FROM idx1 TO idx2.
情形5:删除重复数据,执行此条件前必须先排序
语法结构:
DELETE ADJACENT DUPLICATES FROM itab.
4.6.3.9 READ读取数据
READ语句依据具体行数 或 字段值等条件读取某一个内表数据。
语法结构:
READ TABLE itab FROM wa.
READ TABLE itab WITH [ TABLE ] KEY k1=v1…kn=vn [ BINARY SEARCH ].
READ TABLE itab INDEX i.
4.6.3.9 LOOP读取数据
LOOP循环常用于实现内表数据的循环读取和操作。
语法结构:
LOOP AT itab
WRITE: itab.
ENDLOOP.
对内表进行排序,可以指定具体的排序字段,排序方式(升序或降序)。
语法结构:
SORT itab [ BY f1 f2… fn ] [ ASCENDING / DESCENDING ]
注意:f2为指定的字段,ASCENDING-升序,DESCENDING-降序
将内表中相同的字段合并,若有类型为I的字段,则将其值汇总求和。
语法结构:
COLLECT [ wa INTO ] itab.
2021年9月10日 写于芜湖