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

Sas*_*sku 2 abap

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

DELETE internal_table where field1 <> '+'.
Run Code Online (Sandbox Code Playgroud)

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

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

DELETE internal_table where field1 <> '\+'.
DELETE internal_table where field1 <> |\+|.
DELETE internal_table where field1 <> `\+`.
Run Code Online (Sandbox Code Playgroud)

这一切都不起作用。使用字符串模板时,|\+|我收到错误“字符串模板中未屏蔽的符号 '\'。

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

Józ*_*zai 5

你可以在没有正则表达式的情况下做到这一点:

DELETE internal_table 
       WHERE field CA '+'.
Run Code Online (Sandbox Code Playgroud)

CA代表contains any,它将删除字段包含“+”字符的所有行(与字段的长度或其他字符无关)。如果您愿意,您可以添加更多字符,例如CA '+-'这意味着字符串包含“+”或“-”等。

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

DELETE internal_table
       WHERE field NA '+'.
Run Code Online (Sandbox Code Playgroud)

这是直接 SAPHelp 的链接: https