检查语句中的 IN 运算符

IN operator in check statement

SQ02笔交易中,我想使用check命令。 我可以将 OR 运算符替换为另一个运算符,从而缩短命令吗? SQL中是否存在IN这样的运算符? 检查命令类似于: CHECK SKB1-BUKRS EQ '1000'CHECK SKB1-BUKRS EQ '2001'CHECK SKB1-BUKRS EQ '5221' 。 SQL中是否存在IN这样的运算符? CHECK SKB1-BUKRS in ('1000', '2001', '5221')

当我在记录处理部分写的时候: 选择开始。 在 gt_ranges.

中检查 skb1-bukrs

然后我收到 ABAP 错误:

我不是 SQ02 方面的专家,但是我可以看到有 DATAINITIALIZATION 的部分,所以下面的示例应该有效。 IN ABAP 中的运算符(当然不包括 OpenSQL)只能与范围一起使用。

示例:

REPORT zzz.

DATA: gt_ranges TYPE RANGE OF bukrs.
TABLES: skb1.

INITIALIZATION.
  gt_ranges = VALUE #(
    ( sign = 'I' option = 'EQ' low = '1000' )
    ( sign = 'I' option = 'EQ' low = '2001' )
    ( sign = 'I' option = 'EQ' low = '5221' )
  ).

START-OF-SELECTION.
  CHECK skb1-bukrs IN gt_ranges.