MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   where campo = '5***' los * pueden ser cualquier valor (foro/showthread.php?t=43878)

cirsgo 20/06/11 18:56:30

where campo = '5***' los * pueden ser cualquier valor
 
Hola a todos!

Tengo una subquery y dentro de la sentencia where debo poner que un campo en concreto sea 5**** o 6****, es decir cinco lo que sea o seis lo que sea...¿alguien puede decirme cómo puedo hacer esto en una select?

SELECT SINGLE * INTO L_WA_ITAB
FROM t77ed
WHERE awart ='5***' o '6***'???

He probado a creear una variable de tipo string y concatenar:
concatenate '5' '%' into variable. Y en vez de %, * pero nada.
Y también creando rangos...

Seguro que es una tontería pero...alguien puede decirme cómo hacerlo.

Muchas gracias!!

DCErick 20/06/11 20:02:42


Usa like en lugar de =

where campo like ....

cirsgo 21/06/11 06:25:06

Gracias,

concatenate '5' '%' into variable.
SELECT SINGLE * INTO L_WA_ITAB
FROM t77ed
WHERE awart LIKE variable.

Todo ok:)

K-MUS 23/06/11 14:48:50

En verdad si vos sabes que son 4 caracteres deberías usar

LIKE '5___'.

el _ es un comodín pero determina una posición, por ende la búsqueda va a ser un poco más rápida, ya que descartas todos los valores mayores a 4 dígitos, en cambio si usas '5%' toma todo lo que empieza con 5.

jarabas 27/06/11 10:20:45

Eso de los guiones bajos es la primera vez que lo veo, funciona? yo estoy probando y no me funciona.

SAludos

K-MUS 27/06/11 13:23:01

Si, te paso el link a la SAP HELP


Comparing Strings

To find out whether the value of a column matches a pattern, use:

SELECT ... WHERE <s> [NOT ] LIKE <f> [ESCAPE <h>] ...

The condition is true if the value of the column <s> matches [does not match] the pattern in the data object <f>. You can only use this test for text fields. The data type of the column must be alphanumeric. <f> must have data type C.

You can use the following wildcard characters in <f>:

% for a sequence of any characters (including spaces).
_ for a single character.


For example, ABC_EFG% matches the strings ABCxEFGxyz and ABCxEFG, but not ABCEFGxyz. If you want to use the two wildcard characters explicitly in the comparison, use the ESCAPE option. ESCAPE <h> specifies an escape symbol <h>. If preceded by <h>, the wildcards and the escape symbol itself lose their usual function within the pattern <f>. The use of _ and % corresponds to Standard SQL usage. Logical expressions elsewhere in ABAP use other wildcard characters (+ and *).

You cannot use LIKE in the ON condition of the FROM clause.

jarabas 27/06/11 13:55:51

Ok, gracias pero haciendo dos select a la LFA1, una con el % y otra con _ para que salgan cosas distintas, me devuelve los mismos mismos registros.

Que puedo estar haciendo mal? por que esto me parece bastante interesante y util a la hora de optimizar consultas.

Gracias de antemano.

Saludos.

Edito:
tienes toda la razón del mundo, lo estaba probando mal estaba poniendo algo que me devolvia lo misma.

gracias nuevamente.


Husos Horarios son GMT. La hora en este momento es 04:37:27.

www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web