Espero me puedan ayudar con lo siguiente, en una cosulta estoy usando la sentencia like,
como lo indica el anteriro ejemplo, quisiera saber si es posible usar la misma sentencia pero con varias opciones ( tipo rango ), algo asi srch_str = (’%R%,%B%) en la misma consulta.
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:
Declaras una tabla interna del tipo TRTY_BUKRS_RANGE y una workarea del tipo VDBUKRS_RANGE.
Rellenas la tabla interna con los patrones que quieres utilizar:
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.
@canuto Sí, esa es la idea Me he acostumbrado o a utilizar SELECT-OPTIONS o a buscar tipos de tabla de rangos de algún dato. Para selecciones de datos me facilitan la vida.