关于用IF,或者SQL时where条件取数时,还有read table时的with key条件,
例如:IF A = a OR A = b.
或者select…where A = a OR A = b OR A = c.
再或者read table…with key…满足多个值,
同一字段满足多个条件时,可以整合成一行代码吗?
有没有比较简便的写法,不用重复写很多行
另外itab里的某一字段,不用loop能一下子判断其是否满足某些值条件么?
例如itab-A IN ( a OR b OR c )
最近很头疼的问题,也查不到有效答案,可能是查询方法有问题,望大shen解惑
IF A IN (a,b)
或者
SELECT * FROM table_name WHERE A IN (a,b,c)
或者
READ TABLE table_name WITH KEY A IN (a,b,c)
可以使用FOR ALL ENTRIES关键字来避免使用循环来检查ITAB中某一字段的多个条件。
DATA: itab TYPE STANDARD TABLE OF <structure>,
condition TYPE RANGE OF <datatype>.
condition-sign = 'I'.
condition-option = 'EQ'.
APPEND 'a' TO condition-low.
APPEND 'b' TO condition-low.
APPEND 'c' TO condition-low.
SELECT * FROM <table> INTO TABLE itab
FOR ALL ENTRIES IN condition
WHERE <field> IN condition.
IF sy-subrc = 0.
" ITAB中存在<field>等于a、b或c的行
ELSE.
" ITAB中不存在<field>等于a、b或c的行
ENDIF.