Несколько различий между запросами выбора SQL, которые могут вам помочь.
Общий оператор выбора (без какого-либо определенного типа) выглядит следующим образом.
Select * from [table] where [field] = [value]
В зависимости от того, указано или нет into
предложение, используется определенный тип выбора.
into table
into table
выбирает одну или несколько записей во внутренней таблице . может использоваться только тогда, когда ваше предложение select (список полей) идентично структуре вашей внутренней таблицы.
data: lt_ekko type table of ekko,
ls_ekko type table of ekko,
select * from ekko into table @lt_ekko.
loop at lt_ekko into ls_ekko.
write: / ls_ekko-ebeln.
endloop.
into
into
означает, что вы выбираете переменную (если вы выбираете 1 столбец) или структуру (если вы выбираете более 1). Это важно, потому что структуры могут только и переменные могут хранить только 1 значение или строку, что означает, что вы должны указать, что вы выбираете single
строку или использовать операторы select
/ endselect
для выполнения цикла выберите.
data: ls_ekko type ekko.
select single * from ekko into @ls_ekko where ebeln = [some number]
write: / ls_ekko-ebeln.
OR
select * from ekko into @ls_ekko where ebeln = [some number].
write: / ls_ekko-ebeln. "will print one for each row
endselect.
into corresponding fields of (table)
into corresponding fields of
(и into corresponding fields of table
) выбирает записи одинаково into
и into internal table
. Разница в том, что ваша структура или внутренняя таблица не должны совпадать с выбранным списком полей. Выбранные поля будут сохранены в полях таблицы / структуры с такими же именами.
data: ls_ekko type ekko.
select single ebeln, bukrs from ekko into @ls_ekko where ebeln = [some number].
write: / ls_ekko-ebeln.
нет into
пункт
нет into
предложение аналогично into
[структура], поскольку он может выбрать только 1 запись. Это означает, что вы должны указать, что вы выбрали single
запись.
Примечание: Таблицы, из которых вы выбираете, должны быть объявлены в программе, чтобы использовать этот тип выбора.
select single * from ekko where ebeln = [some number].
write: / ekko-ebeln.
Поскольку вы не используете предложение into
, вы используете последний тип, а это означает, что вы должны использовать select single