Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Détermine si un caractère String spécifique correspond à un modèle spécifié.
Syntaxe
match [NOT] LIKE pattern [ESCAPE escape]
Les arguments
matchExpression Entity SQL qui prend la valeur .String
pattern Modèle à mettre en correspondance avec le fichier spécifié String.
escape Caractère d’échappement.
NOT Spécifie que le résultat de LIKE doit être supprimé.
Valeur de retour
true si le string modèle correspond au modèle ; sinon, false.
Remarques
Les expressions ENTITY SQL qui utilisent l’opérateur LIKE sont évaluées de la même façon que les expressions qui utilisent l’égalité comme critères de filtre. Toutefois, les expressions Entity SQL qui utilisent l’opérateur LIKE peuvent inclure des littéraux et des caractères génériques.
Le tableau suivant décrit la syntaxe du modèle string.
| Caractère générique | Descriptif | Exemple : |
|---|---|---|
| % | Un string ou plusieurs caractères. |
title like '%computer%' recherche tous les titres avec le mot "computer" n’importe où dans le titre. |
| _ (souligné) | N'importe quel caractère. |
firstname like '_ean' trouve tous les prénoms de quatre lettres qui se terminent "eanpar , comme Dean ou Sean. |
| [ ] | Tout caractère unique dans la plage spécifiée ([a-f]) ou défini ([abcdef]). |
lastname like '[C-P]arsen' trouve les noms de famille se terminant par « arsène » et commençant par n’importe quel caractère unique entre C et P, tel que Carsen ou Larsen. |
| [^] | Tout caractère unique non compris dans la plage spécifiée ([^a-f]) ou défini ([^abcdef]). |
lastname like 'de[^l]%' recherche tous les noms qui commencent par « de » et n’incluent pas « l » comme lettre suivante. |
Remarque
L’opérateur Entity SQL LIKE et la clause ESCAPE ne peuvent pas être appliqués aux valeurs ou System.Guid aux System.DateTime valeurs.
LIKE prend en charge la correspondance de modèles ASCII et la correspondance de modèles Unicode. Lorsque tous les paramètres sont des caractères ASCII, la correspondance de modèle ASCII est effectuée. Si un ou plusieurs arguments sont Unicode, tous les arguments sont convertis en correspondance de modèle Unicode et Unicode sont effectués. Lorsque vous utilisez Unicode avec LIKE, les espaces de fin sont significatifs ; Toutefois, pour les espaces non Unicode, les espaces de fin ne sont pas significatifs. La syntaxe de chaîne de modèle d’Entity SQL est la même que celle de Transact-SQL.
Une chaîne peut comprendre des caractères normaux ainsi que des caractères génériques. Pendant la correspondance de modèle, les caractères réguliers doivent correspondre exactement aux caractères spécifiés dans le caractère string. Toutefois, les caractères génériques peuvent être associés à des portions aléatoires de la chaîne de caractères. Lorsqu’il est utilisé avec des caractères génériques, l’opérateur LIKE est plus flexible que les opérateurs de comparaison de chaînes = et != .
Remarque
Vous pouvez utiliser des extensions spécifiques au fournisseur si vous ciblez un fournisseur spécifique. Toutefois, ces constructions peuvent être traitées différemment par d’autres fournisseurs, par exemple. SqlServer prend en charge les modèles [first-last] et [^first-last] où l’ancien correspond exactement à un caractère entre le premier et le dernier, et le dernier correspond exactement à un caractère qui n’est pas compris entre le premier et le dernier.
Échapper
En utilisant la clause ESCAPE, vous pouvez rechercher des chaînes de caractères qui incluent un ou plusieurs caractères génériques spéciaux décrits dans le tableau de la section précédente. Par exemple, supposons que plusieurs documents incluent le littéral « 100%» dans le titre et que vous souhaitez rechercher tous ces documents. Étant donné que le caractère pourcentage (%) est un caractère générique, vous devez l’échapper à l’aide de la clause Entity SQL ESCAPE pour exécuter correctement la recherche. Voici un exemple de ce filtre.
"title like '%100!%%' escape '!'"
Dans cette expression de recherche, le caractère générique pourcentage (%) immédiatement après le caractère de point d’exclamation ( !) est traité comme un littéral, au lieu d’un caractère générique. Vous pouvez utiliser n’importe quel caractère comme caractère d’échappement, à l’exception des caractères génériques Entity SQL et des caractères entre crochets ([ ]). Dans l’exemple précédent, le point d’exclamation ( !) est le caractère d’échappement.
Exemple :
Les deux requêtes Entity SQL suivantes utilisent les opérateurs LIKE et ESCAPE pour déterminer si une chaîne de caractères spécifique correspond à un modèle spécifié. La première requête recherche l’élément Name qui commence par les caractères Down_. Cette requête utilise l’option ESCAPE, car le trait de soulignement (_) est un caractère générique. Sans spécifier l’option ESCAPE, la requête recherche Name les valeurs qui commencent par le mot Down suivi d’un caractère unique autre que le caractère de soulignement. Les requêtes sont basées sur adventureWorks Sales Model. Pour compiler et exécuter cette requête, procédez comme suit :
Suivez la procédure dans How to : Execute a Query that Returns PrimitiveType Results.
Transmettez la requête suivante en tant qu’argument à la
ExecutePrimitiveTypeQueryméthode :
-- 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%'