LIKE (Entity SQL)

Determina si un elemento String de caracteres específico coincide con un patrón especificado.

Sintaxis

match [NOT] LIKE pattern [ESCAPE escape]

Argumentos

match Expresión de Entity SQL que se evalúa como un elemento String.

pattern Patrón que va a coincidir con el elemento String especificado.

escape Carácter de escape.

NOT especifica que el resultado de LIKE se niega.

Valor devuelto

true si el elemento string coincide con el patrón; de lo contrario, false.

Observaciones

Las expresiones de Entity SQL que utilizan al operador LIKE se evalúan de forma muy parecida a las expresiones que utilizan la igualdad como criterios de filtrado. Pero las expresiones de Entity SQL que utilizan el operador LIKE pueden incluir tanto literales como caracteres comodín.

En la tabla siguiente se describe la sintaxis del patrón string.

Carácter comodín Descripción Ejemplo
% Cualquier elemento string de cero o más caracteres. title like '%computer%' busca todos los títulos con la palabra "computer" en cualquier parte del título.
_ (carácter de subrayado) Cualquier carácter individual. firstname like '_ean' busca todos los nombres de cuatro letras que finalizan con "ean, como Dean o Sean.
[ ] Cualquier carácter individual del intervalo ([a-f]) o del conjunto ([abcdef]) que se han especificado. lastname like '[C-P]arsen' busca los apellidos que terminan con "arsen" y empiezan con cualquier carácter individual entre C y P, como Carsen o Larsen.
[^] Cualquier carácter individual no incluido en el intervalo ([^a-f]) o del conjunto ([^abcdef]) que se han especificado. lastname like 'de[^l]%' busca todos los apellidos que empiezan con "de" y no incluyen "l" como la letra siguiente.

Nota:

La cláusula ESCAPE y el operador LIKE de Entity SQL no se pueden aplicar a los valores System.DateTime o System.Guid.

LIKE admite operaciones de búsqueda de coincidencias de patrón ASCII y Unicode. Cuando todos los parámetros son caracteres ASCII, se realiza la operación de búsqueda de coincidencias de patrón ASCII. Si uno o más argumentos son Unicode, todos los argumentos se convierten a Unicode y se realiza la operación de búsqueda de coincidencias de patrón Unicode. Cuando se utiliza Unicode con LIKE, los espacios en blanco al final son significativos; sin embargo, no lo son para los datos que no son Unicode. La sintaxis de cadena de patrón de Entity SQL es la misma que la de Transact-SQL.

Un patrón puede contener caracteres normales y caracteres comodín. Durante la operación de búsqueda de coincidencias de patrón, los caracteres normales deben coincidir exactamente con los caracteres especificados en el elemento string de caracteres. Sin embargo, los caracteres comodín pueden coincidir con fragmentos arbitrarios de la cadena. Cuando se utiliza con caracteres comodín, el operador LIKE es más flexible que los operadores de comparación de cadenas = y !=.

Nota:

Puede utilizar extensiones específicas del proveedor si el destino es un proveedor concreto. Sin embargo, otros proveedores pueden tratar de manera diferente este tipo de estructuras. SqlServer admite patrones [primero-último] y [^primero-último] donde el primero coincide exactamente con un carácter entre el primero y el último, y el segundo coincide exactamente con un carácter que no está entre el primero y el último.

Escape

El uso de la cláusula ESCAPE permite buscar cadenas de caracteres que incluyen uno o más de los caracteres comodín especiales que se describen en la tabla de la sección anterior. Por ejemplo, suponga que varios documentos incluyen el literal "100%" en el título y desea buscar todos esos documentos. Dado que el carácter de porcentaje (%) es un carácter comodín, debe evitarlo utilizando la cláusula ESCAPE de Entity SQL para ejecutar correctamente la búsqueda. A continuación se muestra un ejemplo de este filtro.

"title like '%100!%%' escape '!'"

En esta expresión de búsqueda, el carácter comodín de porcentaje (%) situado inmediatamente después del carácter de exclamación (!) se trata como literal, en lugar de como carácter comodín. Puede utilizar cualquier carácter como carácter de escape salvo los caracteres comodín de Entity SQL y los caracteres incluidos entre corchetes ([ ]). En el ejemplo anterior, el carácter de exclamación (!) es el carácter de escape.

Ejemplo

Las dos consultas de Entity SQL siguientes utilizan los operadores ESCAPE y LIKE para determinar si una cadena de caracteres concreta coincide con un patrón especificado. La primera consulta busca el elemento Name que empieza con los caracteres Down_. Esta consulta utiliza la opción ESCAPE porque el carácter de subrayado (_) es un carácter comodín. Sin especificar la opción ESCAPE, la consulta buscaría valores de Name que empezasen con la palabra Down seguida de cualquier carácter individual diferente del carácter de subrayado. Las consultas se basan en el modelo AdventureWorks Sales. Para compilar y ejecutar esta consulta, siga estos pasos:

  1. Siga los pasos que se indican en Procedimientos para ejecutar una consulta que devuelve resultados PrimitiveType.

  2. Pase la consulta siguiente como argumento al método ExecutePrimitiveTypeQuery :

-- LIKE and ESCAPE
-- If an AdventureWorksEntities.Products contained a Name 
-- with the value 'Down_Tube', the following query would find that 
-- value.
Select value P.Name FROM AdventureWorksEntities.Products AS P 
WHERE P.Name LIKE 'DownA_%' ESCAPE 'A'

-- LIKE
Select value P.Name FROM AdventureWorksEntities.Products AS P 
WHERE P.Name LIKE 'BB%'

Consulte también