Можно объявить и сразу заполнить одну внутреннюю таблицу из уже существующей, причем с условием, следующим образом:
1 2 |
DATA(itab2) = VALUE t_itab2( FOR wa IN itab1 WHERE ( col1 < 30 ) ( col1 = wa-col2 col2 = wa-col3 ) ). |
Новый OpenSQL синтаксис.
Списки полей в запросах можно разделять запятой, при этом переменные хоста должны прятаться за символом @
1 2 3 4 5 6 |
SELECT carrid, connid, fldate FROM sflight INTO CORRESPONDING FIELDS OF TABLE @sflight_tab WHERE carrid = @carrier AND connid = @connection ORDER BY carrid, connid. |
Объявление и инициализация переменной
1
1 |
DATA(text) = `...`. |
2
1 2 3 4 5 6 7 8 9 10 11 12 |
Before 7.40 DATA wa like LINE OF itab. LOOP AT itab INTO wa. ... ENDLOOP. With 7.40 LOOP AT itab INTO DATA(wa). ... ENDLOOP. |
Доступ к строке таблицы с указанием индекса
1 |
wa = itab[ idx ]. |