IN运算符在check语句中

时间:2017-01-24 09:00:55

标签: sap abap

SQ02事务中,我想使用check命令。 我可以将OR运算符替换为另一个运算符,这会使命令短路吗? 是否有像IN这样的运算符,它存在于SQL中? check命令类似于: CHECK SKB1-BUKRS EQ '1000'CHECK SKB1-BUKRS EQ '2001'CHECK SKB1-BUKRS EQ '5221'。 是否有像IN这样的运算符,它存在于SQL中? CHECK SKB1-BUKRS in ('1000', '2001', '5221')

当我在“记录处理”部分写入时: START-OF-SELECTION。   检查skb1-bukrs IN gt_ranges。

Section Record Processing

然后我收到ABAP错误: Error message

1 个答案:

答案 0 :(得分:3)

关于SQ02,我不是专家我可以看到DATAINITIALIZATION有部分,所以下面的示例应该有用。 ABAP中的IN运算符(当然不包括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.