abap 根据动态条件删除内表数据
发布网友
发布时间:2022-04-23 06:25
我来回答
共2个回答
热心网友
时间:2022-04-11 11:35
类似这样
DELETE <DYN_TABLE> WHERE ('ZJM = SPACE') .
ZJM是内表的的一个字段,如果是多条件,直接引号里在后面补上 AND ,OR之类的条件。
注意一点,括号和引号间没有空格,有空格的话,会提示错误消息。
这种写法要注意检查。追问字段名不是ZJM, 是两个字符拼起来的 比如 'ZJM' + '01' ; 'ZJM' + '02' , 有可能是ZJM01这个字段作为条件,也有可能是ZJM02这个字段作为条件,动态的
追答简单一点,这样写
DELETE WHERE ('ZJM01 = SPACE') .
复杂一点,可以这么写
LV_TEXT = 'ZJM' && SY-INDEX && ' = SPACE' .
DELETE WHERE (LV_TEXT) .
LV_TEXT 是字符串类型,你可以随意指定,系统支持这种写法.
热心网友
时间:2022-04-11 12:53
常见的解决方法有两种,1 定义一个新的内表,对应字段跟table中字段类型一致。
copy 条件表数据到新的内表。使用新的内表查询。
2 要是作为条件查询的表的字段长于table的,
比如a 10 位长, b 12位长,可以 a = b(10)。
强制指定后者长度,但是不推荐这么做,呵呵。