Una alternativa sería utilizar un SELECT-OPTIONS con un NO-INTERVALS. Así de esta manera te olvidas de crear patrones y ponerlos uno a uno en la SELECT.
Algo del siguiente estilo:
SELECT-OPTIONS: so_str for DOKTL-DOKTEXT NO-INTERVALS.
SELECT * FROM doktl
WHERE doktext IN so_str[].
Si no tienes una pantalla de selección, te puedes declarar tu propio rango y rellenarlo manualmente.
Por ejemplo:
move: 'I' to wa_bukrs_range-sign,
'CP' to wa_bukrs_range-option,
'50*' to wa_bukrs_range-low.
append wa_bukrs_range to lt_bukrs_range.
move: 'I' to wa_bukrs_range-sign,
'CP' to wa_bukrs_range-option,
'*3*' to wa_bukrs_range-low.
append wa_bukrs_range to lt_bukrs_range.
- Utilizas la tabla interna en el SELECT:
SELECT * FROM t001
WHERE bukrs IN lt_bukrs_range.
CP quiere decir Covers Pattern. Es decir, que lo que estás poniendo en el LOW es un patrón de búsqueda.
Con el ejemplo que te he puesto, estás seleccionando las sociedades que empiecen por 50 o que contengan un 3.