Nota
L'accesso a questa pagina richiede l'autorizzazione. Puoi provare ad accedere o a cambiare directory.
L'accesso a questa pagina richiede l'autorizzazione. Puoi provare a cambiare directory.
Determina se un carattere String specifico corrisponde a un criterio specificato.
Sintassi
match [NOT] LIKE pattern [ESCAPE escape]
Argomenti
match Espressione Entity SQL che restituisce un oggetto String.
pattern Modello da associare all'oggetto specificato String.
escape Carattere di escape.
NOT Specifica che il risultato di LIKE viene negato.
Valore restituito
true se corrisponde string al modello; in caso contrario, false.
Osservazioni:
Le espressioni ENTITY SQL che usano l'operatore LIKE vengono valutate in modo analogo alle espressioni che usano l'uguaglianza dei criteri di filtro. Tuttavia, le espressioni Entity SQL che usano l'operatore LIKE possono includere sia valori letterali che caratteri jolly.
Nella tabella seguente viene descritta la sintassi del modello string.
| Carattere jolly | Descrizione | Esempio |
|---|---|---|
| % | Uno string qualsiasi di zero o più caratteri. |
title like '%computer%' trova tutti i titoli con la parola "computer" ovunque nel titolo. |
| _ (carattere di sottolineatura) | Carattere singolo. |
firstname like '_ean' trova tutti i nomi di quattro lettere che terminano con "ean, ad esempio Dean o Sean. |
| [ ] | Qualsiasi carattere singolo nell'intervallo specificato ([a-f]) o set ([abcdef]). |
lastname like '[C-P]arsen' trova i nomi che terminano con "arsen" e iniziano con qualsiasi singolo carattere tra C e P, ad esempio Carsen o Larsen. |
| [^] | Qualsiasi carattere singolo non incluso nell'intervallo specificato ([^a-f]) o impostato ([^abcdef]). |
lastname like 'de[^l]%' trova tutti i nomi che iniziano con "de" e non includono "l" come lettera seguente. |
Annotazioni
L'operatore Entity SQL LIKE e la clausola ESCAPE non possono essere applicati a System.DateTime valori o System.Guid .
LIKE supporta i criteri di ricerca ASCII e la corrispondenza dei criteri Unicode. Quando tutti i parametri sono caratteri ASCII, viene eseguita la corrispondenza dei criteri ASCII. Se uno o più argomenti sono Unicode, tutti gli argomenti vengono convertiti in Unicode e viene eseguita la corrispondenza dei criteri Unicode. Quando si usa Unicode con LIKE, gli spazi vuoti finali sono significativi; Tuttavia, per gli spazi vuoti finali non Unicode non sono significativi. La sintassi della stringa di criteri di Entity SQL è identica a quella di Transact-SQL.
Il modello può contenere caratteri specifici e caratteri jolly. Durante la corrispondenza dei criteri di ricerca, i caratteri regolari devono corrispondere esattamente ai caratteri specificati nel carattere string. Tuttavia, i caratteri jolly possono essere confrontati con frammenti arbitrari della stringa di caratteri. Quando viene usato con caratteri jolly, l'operatore LIKE è più flessibile rispetto agli operatori di confronto di stringhe = e !=.
Annotazioni
È possibile usare estensioni specifiche del provider se si è destinati a un provider specifico. Tuttavia, tali costrutti possono essere trattati in modo diverso da altri provider, ad esempio. SqlServer supporta i modelli [first-last] e [^first-last] in cui il primo corrisponde esattamente a un carattere tra il primo e l'ultimo e il secondo corrisponde esattamente a un carattere che non è compreso tra il primo e l'ultimo.
Fuga
Usando la clausola ESCAPE, è possibile cercare stringhe di caratteri che includono uno o più caratteri jolly speciali descritti nella tabella nella sezione precedente. Si supponga, ad esempio, che diversi documenti includano il valore letterale "100%" nel titolo e si voglia cercare tutti i documenti. Poiché il carattere percent (%) è un carattere jolly, è necessario eseguirne l'escape usando la clausola ENTITY SQL ESCAPE per eseguire correttamente la ricerca. Di seguito è riportato un esempio di questo filtro.
"title like '%100!%%' escape '!'"
In questa espressione di ricerca il carattere jolly percentuale (%) immediatamente successivo al carattere punto esclamativo (!) viene considerato come valore letterale, anziché come carattere jolly. È possibile usare qualsiasi carattere come carattere di escape, ad eccezione dei caratteri jolly Entity SQL e delle parentesi quadre ([ ]). Nell'esempio precedente il carattere punto esclamativo (!) è il carattere di escape.
Esempio
Le due query Entity SQL seguenti usano gli operatori LIKE e ESCAPE per determinare se una stringa di caratteri specifica corrisponde a un criterio specificato. La prima query cerca l'oggetto Name che inizia con i caratteri Down_. Questa query usa l'opzione ESCAPE perché il carattere di sottolineatura (_) è un carattere jolly. Senza specificare l'opzione ESCAPE, la query cerca tutti i Name valori che iniziano con la parola Down seguita da un singolo carattere diverso dal carattere di sottolineatura. Le query sono basate sul modello AdventureWorks Sales. Per compilare ed eseguire questa query, seguire questa procedura:
Seguire la procedura descritta in Procedura: Eseguire una query che restituisce i risultati primitiveType.
Passare la query seguente come argomento al
ExecutePrimitiveTypeQuerymetodo :
-- 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%'