Выделите все поля таблицы A, но выберите поля таблицы B

Есть ли способ в OpenAP ABAP, чтобы упростить выбор столбцов в JOIN когда я хочу получить все поля одной таблицы, но только выбранные поля из других таблиц?

Например, в MySQL мы можем просто сделать:

SELECT  tb1.*, tb2.b, tb2.d
FROM       tableA tb1
INNER JOIN tableB tb2 ON tb1.x = tb2.a

Тем не менее, OpenSQL не позволяет выбирать tb1~*, tb2~b, tb2~d поэтому я должен прибегнуть к этому:

SELECT  tb1.x, tb1.y, tb1.z, tb2.b, tb2.d
FROM       tableA tb1
INNER JOIN tableB tb2 ON tb1.x = tb2.a

Для очень больших таблиц, особенно стандартных таблиц, это становится громоздким, трудным для чтения и более раздражающим в обслуживании.

Есть ли лучший способ выбрать все поля tb1 и некоторые поля из tb2?

1 ответ

Решение

Да, это возможно в OpenSQL от 7.40 SP08. Смотрите эту статью.

Цитата из статьи имеет это.

Спецификация колонки

В списке SELECT вы можете указать все столбцы источника данных, используя синтаксис data_source~* от 7.40, SP08 и далее. Это может быть удобно при работе с соединениями.

SELECT scarr~carrname, spfli~*, scarr~url
       FROM scarr INNER JOIN spfli ON scarr~carrid = spfli~carrid
       INTO TABLE @DATA(result).

К сожалению, в предыдущих версиях нужно было указывать столбцы один за другим или использовать собственный SQL базы данных, например, с ADBC.

Другие вопросы по тегам