where campo = '5***' los * pueden ser cualquier valor

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • cirsgo
    Junior Member
    • jun
    • 11

    #1

    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
    Moderator
    • mar
    • 1090

    #2
    Originalmente publicado por cirsgo
    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 ....
    -------------------
    ¿Dudas para descargar manuales? Ver este tema -> Cómo descargar manuales de la sección "Descargas" ?

    Comentario

    • cirsgo
      Junior Member
      • jun
      • 11

      #3
      Gracias,

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

      Todo ok

      Comentario

      • K-MUS
        Member
        • feb
        • 87

        #4
        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.

        Comentario

        • jarabas
          Senior Member
          • ene
          • 109

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

          SAludos

          Comentario

          • K-MUS
            Member
            • feb
            • 87

            #6
            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.

            Comentario

            • jarabas
              Senior Member
              • ene
              • 109

              #7
              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.
              Editado por última vez por jarabas; 27/06/2011, 14:01:01.

              Comentario

              Trabajando...