ABAP LIKE с опцией выбора

У меня есть следующая программа abap, которая выглядит следующим образом:

TABLES lfa1.

DATA gt_lfa1 TYPE SORTED TABLE OF lfa1 WITH UNIQUE DEFAULT KEY.

SELECT-OPTIONS sl_lifnr FOR lfa1-lifnr.
SELECT-OPTIONS sl_name  FOR lfa1-name1.


START-OF-SELECTION.

  SELECT * FROM lfa1
   INTO CORRESPONDING FIELDS OF TABLE gt_lfa1
   WHERE lifnr IN sl_lifnr
   AND   name1 LIKE sl_name.

Поиск поставщиков, название которых начинается с:

введите здесь описание изображения

У меня нет результатов, но есть поставщики с этим шаблоном.


person softshipper    schedule 23.05.2018    source источник
comment
Почему вы не используете IN?   -  person I.B.N.    schedule 23.05.2018
comment
Да, это работает. Большое спасибо   -  person softshipper    schedule 23.05.2018
comment
Просто поставьте звездочки в Seltab и используйте IN. Вот и все.   -  person Suncatcher    schedule 23.05.2018


Ответы (2)


Нет необходимости использовать LIKE. Вместо этого вы можете использовать IN.

Я запустил ваш код с IN в SQL, и у меня есть результаты в таблице.

введите здесь описание изображения

person Nelson Miranda    schedule 23.05.2018

Вам нужно заменить * на %, если вы используете операнд LIKE. https://help.sap.com/doc/abapdocu_750_index_htm/7.50/de-DE/abenwhere_logexp_like.htm

REPLACE ALL OCCURENCES OF '*' in sl_lifnr WITH '%'
REPLACE ALL OCCURENCES OF '*' in sl_name WITH '%'

SELECT * FROM lfa1
   INTO CORRESPONDING FIELDS OF TABLE gt_lfa1
   WHERE lifnr LIKE sl_lifnr
   AND   name1 LIKE sl_name.
person dotchuZ    schedule 23.05.2018