Ver la Versión Completa : 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
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!!
Usa like en lugar de =
where campo like ....
Gracias,
concatenate '5' '%' into variable.
SELECT SINGLE * INTO L_WA_ITAB
FROM t77ed
WHERE awart LIKE variable.
Todo ok:)
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
Si, te paso el link a la SAP HELP
http://help.sap.com/SAPhelp_nw04/helpdata/en/fc/eb3a1f358411d1829f0000e829fbfe/content.htm
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.
www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web