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 une String de caractères donnée correspond à un modèle spécifié.
[NOT] LIKE ( expression )
Arguments
- match
Expression Entité SQL qui prend la valeur String.
- pattern
Modèle devant correspondre à la valeur String spécifiée.
- escape
Caractère d'échappement.
- NOT
Indique que la valeur du résultat de l'opérateur LIKE est inversée.
Valeur de retour
true si la string correspond au modèle ; sinon, false.
Notes
Les expressions Entité SQL qui utilisent l'opérateur LIKE sont évaluées de façon très similaire aux expressions qui utilisent l'égalité comme critère de filtre. Toutefois, les expressions Entité 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 de la string de modèle.
| Caractère générique | Description | Exemple |
|---|---|---|
% |
Toute string comprenant entre zéro et un nombre quelconque de caractères. |
|
_ (caractère de soulignement) |
N'importe quel caractère unique. |
|
[ ] |
Tout caractère unique se trouvant dans la plage ([a-f]) ou l'ensemble spécifié ([abcdef]). |
|
[^] |
Tout caractère unique ne se trouvant pas dans la plage ([^a-f]) ou l'ensemble spécifié ([^abcdef]). |
|
Remarque |
|---|
L'opérateur Entité SQL LIKE et la clause ESCAPE ne peuvent pas être appliqués aux valeurs de System.DateTime ou System.Guid. |
L'opérateur LIKE prend en charge les critères spéciaux ASCII et Unicode. Lorsque tous les paramètres sont des caractères ASCII, une recherche générique ASCII est effectuée. Si un ou plusieurs arguments sont de type Unicode, tous les arguments sont convertis en Unicode et une recherche générique Unicode est effectuée. Lors de l'utilisation de données Unicode avec LIKE, les espaces de droite sont significatifs ; pour les autres données, cependant, ils ne le sont pas. La syntaxe des chaînes de modèle d'Entité SQL est identique à celle de Transact-SQL.
Un modèle peut comporter des caractères ordinaires et des caractères génériques. Au cours de l'analyse, les caractères normaux doivent correspondre exactement aux caractères spécifiés dans la string de caractères. 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 souple 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, de telles 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]. Le premier modèle correspond exactement à un caractère compris entre les premier et dernier caractères, tandis que le second modèle correspond exactement à un caractère non compris entre les premier et dernier caractères. |
Caractère d'échappement
En utilisant la clause ESCAPE, vous pouvez rechercher des chaînes de caractères qui contiennent un ou plusieurs des caractères génériques spéciaux décrits dans le tableau de la section précédente. Par exemple, supposons que plusieurs documents contiennent le littéral « 100 % » dans le titre et que vous souhaitez rechercher tous ces documents. Le caractère de pourcentage (%) étant un caractère générique, vous devez le placer dans une séquence d'échappement par le biais de la clause Entité SQL ESCAPE pour exécuter la recherche avec succès. Voici un exemple de ce filtre :
"title like '%100!%%' escape '!'"
Dans cette expression de recherche, le caractère générique de pourcentage (%) qui suit immédiatement le point d'exclamation (!) est traité comme un littéral et non comme un caractère générique. Vous pouvez utiliser n'importe quel caractère en guise de caractère d'échappement à l'exception des caractères génériques Entité SQL et des crochets ([ ]). Dans l'exemple précédent, le point d'exclamation (!) fait office de caractère d'échappement.
Exemple
Les deux requêtes Entité SQL ci-dessous 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 le Name qui commence par les caractères Down_. Cette requête utilise l'option ESCAPE car le caractère de soulignement (_) est un caractère générique. Sans l'option ESCAPE, la requête rechercherait toutes les valeurs Name commençant par le mot Down suivi de tout caractère unique autre que le caractère de soulignement. Les requêtes sont basées sur le modèle de vente AdventureWorks Sales Model. Pour compiler et exécuter cette requête, procédez comme suit :
Suivez la procédure indiquée dans Procédure : exécuter une requête qui retourne des résultats PrimitiveType (EntityClient).
Passez à la méthode
ExecutePrimitiveTypeQueryla requête suivante en tant qu'argument :
// LIKE and ESCAPE
// If an AdventureWorksEntities.Product contained a Name
// with the value 'Down_Tube', the following query would find that
// value.
Select value P.Name FROM AdventureWorksEntities.Product
as P where P.Name LIKE 'DownA_%' ESCAPE 'A'
// LIKE
Select value P.Name FROM AdventureWorksEntities.Product
as P where P.Name like 'BB%'
Remarque