пара дополнительных примеров со стандартными таблицами:
data: set type table of string, " initial set
tab type table of string, " you table
res type table of string. " the result
set = value #( ( `foo` ) ( `bar` ) ( `blue` ) ).
tab = value #( ( `foo` ) ( `bar` ) ).
Вариант 1: если исходный набор и вкладка являются стандартной таблицей, вы можете просто зациклить исходный набор, а затем просмотреть значения таблицы
В этом случае полный поиск таблицы выполняется в таблице вкладок -> O (n) для поиска по вкладкам
LOOP AT set into data(lv_set).
read table tab from lv_set transporting no fields.
check sy-subrc > 0.
append lv_set to res.
ENDLOOP.
Вариант 2: вы можете использовать временную хешированную таблицу, как описано в
SE38 -> Среда -> Примеры исполнений (пересечение внутренних таблиц)
data: htab type hashed table of string with unique key table_line.
htab = tab. " use Hashed table as temporary working table
loop at set into lv_set.
" fast table lookup accessing with unique key O(1)
read table htab from lv_set transporting no fields.
check sy-subrc > 0.
append lv_set to res.
endloop.
free htab.
С уважением!