1.利用索引删除数据
语法格式
DELETE <itab> INDEX <idx>.
<itab>:代表内表
<idx>:代表索引值
删除内表<itab>中的第<idx>条记录
示例1
lt_student内表中存在3条数据记录


我们使用如下指令删除内表中的第一条数据,结果如下所示:
DELETE lt_student INDEX 1.

2.利用WHERE条件语句删除数据
语法格式
DELETE <itab> WHERE <condition>.
<itab>:代表内表
<condition>:代表条件
示例2
lt_student内表中存在3条数据记录


结果显示:

语法格式
DELETE <itab> FROM <n1> TO <n2> WHERE <condition>.
<itab>:代表内表
<condition>:代表条件
删除内表<itab>中符合条件<condition>的记录中的第<n1>至<n2>条记录
示例3
lt_student内表中存在3条数据记录

删除lt_student内表中的第1和第2条数据记录

结果显示:

3.利用ADJACENT DUPLICATE语句删除重复数据
语法格式
DELETE ADJACENT DUPLICATES FROM <itab> [COMPARING f1 f2...|ALL FIELDS].
<itab>:代表内表
使用ADJACENT DUPLICATE语句之前需要对内表进行排序才能达到预期效果
示例4
lt_student内表存在3条数据记录,其中有2条重复的数据记录


结果显示:

4.按工作区的内容删除数据
语法格式
DELETE TABLE <itab> FROM <wa>.
<itab>:代表内表
<wa>:代表工作区
示例5
lt_student内表存在2条数据记录


结果显示:

提示Tips
DELETE TABLE <itab> FROM <wa>.
1.使用上述语法删除内表<itab>的数据,只有内表<itab>的KEY字段值与工作区<wa>的KEY字段值完全匹配,才能删除内表的数据
2.当我们定义内表<itab>的时候,可以指定KEY字段,如果内表<itab>未定义KEY字段,则系统自动将所有的非数字类型的字段定义为KEY字段
练习案例
内表删除前的数据

场景1

输出结果:

场景2

输出结果:

场景3

输出结果:

场景4

输出结果:

场景5

输出结果:


1491

被折叠的 条评论
为什么被折叠?



