abap FOR ALL ENTRIES IN如何与SUBSTRING()一起使用
时间: 2024-01-22 12:01:45 浏览: 212
在 ABAP 中,可以使用 FOR ALL ENTRIES IN 语句与 SUBSTRING 函数一起使用。
FOR ALL ENTRIES IN 语句可以用于根据一个内部表的值来选择另一个内部表中的行。而 SUBSTRING 函数则可以用于提取字符串的子字符串。
下面是一个示例:
```
DATA: lt_values TYPE STANDARD TABLE OF string,
lt_result TYPE STANDARD TABLE OF string.
lt_values = VALUE #( ( '123' ) ( '456' ) ( '789' ) ).
SELECT *
FROM database_table
WHERE field LIKE CONCATENATE '%' lt_values[ 1 ] '%' INTO TABLE lt_result
FOR ALL ENTRIES IN lt_values
WHERE field LIKE CONCATENATE '%' SUBSTRING( lt_values[ sy-tabix ] FROM 2 FOR 2 ) '%'.
```
在上面的示例中,首先定义了一个内部表 lt_values,其中包含了三个字符串。然后使用 FOR ALL ENTRIES IN 语句选择 database_table 表中符合条件的行,并将结果存储在 lt_result 内部表中。
在 WHERE 子句中,使用 CONCATENATE 函数和 lt_values[ 1 ] 来构建一个字符串模式,以查找包含字符串 '123' 的行。同时,在 FOR ALL ENTRIES IN 子句中,使用 SUBSTRING 函数从 lt_values 内部表的每个元素中提取第二个和第三个字符(即 '23'、'56' 和 '89'),并将它们用于查找符合条件的行。
阅读全文