Ayuda SAP

Uso del like en una condición where

sap-abap
Etiquetas: #<Tag:0x00007f4db8c51568>
#1

Buenos días grupo, espero se encuentren muy bien.

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.

Muchas gracias.

Saludos.

#2

Estimado buen día.
No soy programador ABAP pero por la logica del LIKE pienso que no lo puedes hacer.

En tu caso yo haría algo así:

str1 = '%' && 'R'  && '%'
str2 = '%' && 'B'  && '%'

SELECT *
FROM doktl
WHERE doktext LIKE @str1
OR doktext LIKE @str2

Espero te ayude.
Saludos.

3 me gusta
#3

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.

5 me gusta
#4

algo parecido a lo que te comenta robertu_bcn, lo discutimos aqui por si te sirve y tengas un poco mas de vision

3 me gusta
#5

@robertu_bcn Muchas gracias era lo que necesitaba, muchas gracias. saludos

1 me gusta
#6

@Cristianffe19 Me alegro que te sirva de ayuda :slight_smile:

@canuto Sí, esa es la idea :+1: 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.

1 me gusta
cerrado #7

Este tema se cerró automáticamente 7 días después del último post. No se permiten nuevas respuestas.