softshipper
softshipper

Reputation: 34061

ABAP LIKE with select option

I have the following abap program that looks as following:

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.

Searching for vendors that name starts with:

enter image description here

I've got no results, but it exists vendors with this pattern.

Upvotes: 1

Views: 9824

Answers (3)

MrSamael
MrSamael

Reputation: 5

if you use a select option you have to use the statement IN not like:

s_matnr = *3578 *

select options s_matnr type mara-matnr.

select bismt

from mara 

into lv_bismt

where matnr in s_matnr

If you use s/4hana you can use even fuzzy

Upvotes: 0

Nelson Miranda
Nelson Miranda

Reputation: 5554

It's not necessary to use LIKE. You can use IN instead.

I ran your code with IN in the SQL and I have results in the table.

enter image description here

Upvotes: 3

dotchuZ
dotchuZ

Reputation: 2641

You need to replace * with %, if you are using LIKE operand. 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.

Upvotes: -2

Related Questions