删除内部表行,该行的一列包含字符“ +”

时间:2019-12-12 08:40:48

标签: abap

我想从内部表中删除条目,该内部表的一列中没有“ +”。现在,如果要这样删除它:

DELETE internal_table where field1 <> '+'.

它不起作用。这意味着,它将“ +”作为正则表达式,并且只选择长度为1的任何字符。

现在我已经尝试了几件事:

DELETE internal_table where field1 <> '\+'.
DELETE internal_table where field1 <> |\+|.
DELETE internal_table where field1 <> `\+`.

这没有用。使用字符串模板|\+|时,错误消息“字符串模板中的未屏蔽符号'\'。

字段1是一个长度为1的字符字段。如何在字段1中转义只有行中带有“ +”的行的“ +”?

1 个答案:

答案 0 :(得分:5)

您可以不使用正则表达式:

DELETE internal_table 
       WHERE field CA '+'.

CA代表包含任何,它将删除字段包含“ +”字符(与字段长度或其他字符无关)的所有行。您可以根据需要添加更多字符,例如CA '+-',这表示字符串包含'+'或'-'等。

如果要删除不包含“ +”的行,可以使用:

DELETE internal_table
       WHERE field NA '+'.

这里是直接SAPHelp的链接: https://help.sap.com/doc/abapdocu_751_index_htm/7.51/en-us/abenlogexp_op.htm