Le fonctionnement de Like est un peu semblable, mais la direction a changé. Qu’est-ce que cela signifie ? Vous donnez une chaîne et cherchez un champ dans les données qui contient cette chaîne. C’est-à-dire qu’une chaîne donnée est un sous-ensemble d’un corps. SQL scrip{filter}t est écrit comme ceci.
Sélectionnez * à partir du tableau où j’aimerais ' %AD %' Sélectionnez * de la table où j’aimerais ' %AD' Sélectionnez * depuis la table où j’aimerais 'AD %' Le pourcentage ci-dessus est un joker, indiquant que le champ contient une valeur, et que la position inconnue est remplacée par des %. La première consiste à indiquer que la section centrale est AD, et que les deux extrémités ne sont pas claires. Le second est AD à la fin, et le précédent n’est pas clair. Le troisième, au contraire, commence par AD et se termine de manière floue. L’instruction Linq correspondante est la suivante :
var q = (de c dans db. Clients où c.CustomerID.Contains(« ROUT ») sélectionnez c). ToList() ; Le SQL qu’il génère est
SELECT [t0]. [CustomerID], [t0]. [NomDel’entreprise], [t0]. [ContactName], [t0]. [ContactT itle], [t0]. [Adresse], [t0]. [Ville], [t0]. [Région], [t0]. [Code postal], [t0]. [Conseiller try], [t0]. [Téléphone], [t0]. [Fax] DE [dbo]. [Clients] AS [t0] OÙ [t0]. [CustomerID] COMME @p0 -- @p0 : Chaîne d’entrée (taille = 6 ; Prec = 0 ; Balance = 0) [ %ROUT %] Pour terminer avec ISSA, en tête de la carte joker :
var q = (de c dans db. Clients où c.CustomerID.EndsAvec(« ISSA ») sélectionnez c). ToList() ; Le SQL qu’il génère est
SELECT [t0]. [CustomerID], [t0]. [NomDel’entreprise], [t0]. [ContactName], [t0]. [ContactT itle], [t0]. [Adresse], [t0]. [Ville], [t0]. [Région], [t0]. [Code postal], [t0]. [Conseiller try], [t0]. [Téléphone], [t0]. [Fax] DE [dbo]. [Clients] AS [t0] OÙ [t0]. [CustomerID] COMME @p0 -- @p0 : Chaîne d’entrée (taille = 5 ; Prec = 0 ; Échelle = 0) [ %ISSA] En commençant par ARO, joker de queue :
var q = (de c dans db. Clients où c.CustomerID.StartsWith(« ARO ») sélectionnez c). ToList() ; Le SQL qu’il génère est
SELECT [t0]. [CustomerID], [t0]. [NomDel’entreprise], [t0]. [ContactName], [t0]. [ContactT itle], [t0]. [Adresse], [t0]. [Ville], [t0]. [Région], [t0]. [Code postal], [t0]. [Conseiller try], [t0]. [Téléphone], [t0]. [Fax] DE [dbo]. [Clients] AS [t0] OÙ [t0]. [CustomerID] COMME @p0 -- @p0 : chaîne d’entrée (taille = 4 ; Prec = 0 ; Échelle = 0) [ARO %]
Linq propose également une méthode appelée SqlMethods.Like, qui nécessite d’ajouter d’abord l’espace de noms System.Data.Linq.SqlClient. Les trois ci-dessus peuvent s’écrire
var q = (de c dans db. Clients où SqlMethods.Like(c.CustomerID, « %ROUT % ») sélectionnez c). ToList() ; Ici, vous devez remplir vous-même le joker pour dire à Linq comment vous avez été matché. Comme quoi
var q = (de c dans db. Clients où SqlMethods.Like(c.CustomerID, « %ISSA ») sélectionnez c). ToList() ; Un autre exemple :
var q = (de c dans db. Clients où SqlMethods.Like(c.CustomerID, « ARO % ») sélectionnez c). ToList() ; Ce qui est le plus incroyable avec SqlMethods, c’est que vous pouvez implémenter des jokers n’importe où avec vos propres expressions de jokers définies. Comme quoi
var q = (de c dans db. Clients où SqlMethods.Like(c.CustomerID, « A %O %T ») sélectionnez c). ToList() ; Le SQL qu’il génère est
SELECT [t0]. [CustomerID], [t0]. [NomDel’entreprise], [t0]. [ContactName], [t0]. [ContactT itle], [t0]. [Adresse], [t0]. [Ville], [t0]. [Région], [t0]. [Code postal], [t0]. [Conseiller try], [t0]. [Téléphone], [t0]. [Fax] DE [dbo]. [Clients] AS [t0] OÙ [t0]. [CustomerID] COMME @p0 -- @p0 : Chaîne d’entrée (taille = 5 ; Prec = 0 ; Échelle = 0) [A %O %T]
La chose la plus standard est de savoir qu’elle commence par A et se termine par T, connaît une valeur O au milieu, et ne connaît rien d’autre. Utilise juste ça. SQL Server définit quatre jokers, tous disponibles ici. Ce sont : Exemple de caractère joker Descrip{filter}tion % Toute chaîne de caractères zéro ou plus. OÙ un titre comme « %computer % » indique tous les titres de livres contenant le mot « ordinateur » n’importe où dans le titre. _ (soulignement) N’importe quel caractère. OÙ au_fname COMME « _ean » trouve tous les prénoms de quatre lettres qui se terminent par ean (Dean, Sean, etc.). [ ] Tout caractère unique dans la plage spécifiée ([a-f]) ou l’ensemble ([abcdef]). OÙ au_lname COMME « [C-P]arsen » trouve les noms de famille des auteurs se terminant par arsen et commençant par un caractère entre C et P, par exemple Carsen, Larsen, Karsen, etc. [^] Tout caractère unique ne se trouvant pas dans la plage spécifiée ([^a-f]) ou dans l’ensemble ([^abcdef]). OÙ au_lname COMME 'de[^l] %' tous les noms de famille des auteurs commençant par de et où la lettre suivante n’est pas l.
% représente une chaîne de longueur nulle ou n’importe quelle longueur. _ indique un caractère. [] indique un caractère dans une plage de distance. [^] indique un caractère qui n’est pas dans une certaine plage Comme quoi:
var q = (de c dans db. Clients où SqlMethods.Like(c.CustomerID, « A_O_T ») sélectionnez c). ToList() ; Utilisez simplement _ pour représenter un personnage. Le SQL généré est :
SELECT [t0]. [CustomerID], [t0]. [NomDel’entreprise], [t0]. [ContactName], [t0]. [ContactT itle], [t0]. [Adresse], [t0]. [Ville], [t0]. [Région], [t0]. [Code postal], [t0]. [Conseiller try], [t0]. [Téléphone], [t0]. [Fax] DE [dbo]. [Clients] AS [t0] OÙ [t0]. [CustomerID] COMME @p0 -- @p0 : Chaîne d’entrée (taille = 5 ; Prec = 0 ; Échelle = 0) [A_O_T]
Pour le « Pas aimer », c’est aussi très simple, il suffit d’ajouter un non-sens.
var q = (de c dans db. Clients où ! SqlMethods.Like(c.CustomerID, « A_O_T ») sélectionnez c). ToList() ;
SqlMethods.Like possède également un paramètre appelé caractère d’échappement, qui sera transformé en une instruction comme la suivante.
SELECT colonnes FROM table WHERE colonne LIKE ' %\ %%' ESCAPE '\' Échaper est dû au fait qu’un champ contient des caractères spéciaux, tels que %,_ [ ], qui sont utilisés comme jokers. C’est là qu’intervient Escape. C’est un truc de SQL Server.
|