Operador like

En una expresión lógica puede comparar una expresión de texto con otra serie (llamada criterio like) por posiciones de caracteres de izquierda a derecha. La utilización de esta característica es parecida a la utilización de la palabra clave SQL like en consultas SQL.

A continuación se ofrece un ejemplo:

  // la variable myVar01 es la expresión de serie 
  // cuyo contenido se comparará con un criterio like
  myVar01 = "abcdef";

  // la expresión lógica siguiente evalúa a "true" 
  if (myVar01 like "a_c%")
    ;
  end

El criterio like puede ser un literal o un elemento de tipo CHAR o MBCHAR o un elemento de tipo UNICODE. Puede incluir cualquiera de estos caracteres en el criterio like:

%
Actúa como un comodín, emparejando cero o más caracteres de la expresión de serie
_ (subrayado)
Actúa como un comodín, emparejando un solo carácter de la expresión de serie
\
Indica que el carácter siguiente debe compararse con un solo carácter de la expresión de la serie. La barra inclinada invertida (\) se llama carácter de escape porque causa un escape del proceso habitual; el carácter de escape no se compara con ningún carácter de la expresión de serie.

El carácter de escape va precede habitualmente un signo de porcentaje (%), un signo de subrayado (_) u otra barra inclinada invertida.

Cuando utilice la barra inclinada invertida como un carácter de escape (como en el comportamiento por omisión), surge un problema porque EGL utiliza el mismo carácter de escape para permitir la inclusión de unas comillas simples en cualquier expresión de texto. En el contexto de un criterio like debe especificar dos barras inclinadas invertidas porque el texto disponible en tiempo de ejecución es el texto al que le falta la barra inclinada invertida inicial.

Es aconsejable evitar este problema. Especifique otro carácter como el carácter de escape utilizando la cláusula de escape tal como se muestra en un ejemplo posterior. Sin embargo, no puede utilizar unas comillas (") como carácter de escape.

Cualquier otro carácter en likeCriterion es un literal comparado con un solo carácter de la expresión serie.

El ejemplo siguiente muestra la utilización de una cláusula de escape:
  // la variable myVar01 es la expresión de serie 
  // cuyo contenido se comparará con un criterio like
  myVar01 = "ab%def";

  // la expresión lógica siguiente evalúa a "true" 
  if (myVar01 like "ab\\%def")
    ;
  end

  // la expresión lógica siguiente evalúa a "true"
  if (myVar01 like "ab+%def" escape "+")
    ;
  end
El operador LIKE ignora los blancos finales en ambos operandos:
   // es true
   if ("hello " LIKE "hello      ")
     ;
   end

Consulta relacionada
Sentencias EGL
Expresiones lógicas
Expresiones de texto

Comentarios
(C) Copyright IBM Corporation 2000, 2005. Reservados todos los derechos.