Condividi tramite


[NOT] LIKE (Entity SQL)

Determina se un oggetto String di caratteri specifico corrisponde a un criterio specificato.

[NOT] LIKE ( expression )

Argomenti

  • match
    Espressione Entity SQL che restituisce un oggetto String.
  • pattern
    Criterio da confrontare con l'oggetto String specificato.
  • escape
    Carattere di escape.
  • NOT
    Specifica la negazione del risultato di LIKE.

Valore restituito

true se string corrisponde al criterio; in caso contrario, false.

Osservazioni

Le espressioni Entity SQL che utilizzano l'operatore LIKE vengono valutate in modo analogo alle espressioni in cui viene utilizzata l'uguaglianza come criterio di filtro. Le espressioni Entity SQL che utilizzano l'operatore LIKE possono tuttavia includere sia valori letterali che caratteri jolly.

Nella tabella seguente viene descritta la sintassi del modello string.

Carattere jolly Descrizione Esempio

%

Qualsiasi string di zero o più caratteri.

title like '%computer%' consente di trovare tutti i titoli in cui è presente la parola "computer" in qualsiasi posizione.

_ (carattere di sottolineatura)

Qualsiasi carattere singolo.

firstname like '_ean' consente di trovare tutti i nomi di quattro lettere che terminano con "ean", ad esempio Dean o Sean.

[ ]

Qualsiasi carattere singolo compreso nell'intervallo ([a-f]) o nel set ([abcdef]) specificato.

lastname like '[C-P]arsen' consente di trovare i cognomi che terminano con "arsen" e che iniziano con qualsiasi carattere singolo compreso tra C e P, ad esempio Carsen o Larsen.

[^]

Qualsiasi carattere singolo non compreso nell'intervallo ([^a-f]) o nel set ([^abcdef]) specificato.

lastname like 'de[^l]%' consente di trovare tutti i cognomi che iniziano con "de" e che non includono "l" come lettera seguente.

Bb399359.note(it-it,VS.100).gifNota:
La clausola ESCAPE e l'operatore LIKE Entity SQL non possono essere applicati ai valori System.DateTime o System.Guid.

LIKE supporta i criteri di ricerca ASCII e Unicode. Quando tutti i parametri sono caratteri ASCII, viene eseguita una ricerca ASCII. Se uno o più argomenti sono di tipo Unicode, tutti gli argomenti vengono convertiti in Unicode e viene eseguita una ricerca Unicode. Quando si utilizza il formato Unicode con LIKE, gli spazi finali sono significativi, a differenza del formato non Unicode, in cui gli spazi finali non sono significativi. La sintassi della stringa criterio di Entity SQL corrisponde a quella di Transact-SQL .

Un criterio può includere caratteri normali e caratteri jolly. Durante la ricerca i caratteri normali devono corrispondere esattamente ai caratteri specificati nell'oggetto string di caratteri. I caratteri jolly possono tuttavia corrispondere a frammenti arbitrari della stringa di caratteri. Quando viene utilizzato con i caratteri jolly, l'operatore LIKE è più flessibile rispetto agli operatori di confronto tra stringhe = e !=.

Bb399359.note(it-it,VS.100).gifNota:
Se la destinazione è costituita da un provider specifico, è possibile utilizzare estensioni specifiche del provider.Tali costrutti possono tuttavia essere trattati in modo diverso, ad esempio da altri provider.SqlServer supporta ad esempio i modelli [first-last] e [^first-last], dove il primo consente di trovare una corrispondenza esatta di un carattere compreso tra il primo e l'ultimo, mentre il secondo consente di trovare una corrispondenza esatta di un carattere non compreso tra il primo e l'ultimo.

Escape

Utilizzando la clausola ESCAPE, è possibile cercare stringhe di caratteri che includono uno o più dei caratteri jolly speciali descritti nella tabella nella sezione precedente. Si presupponga, ad esempio, che diversi documenti includano il valore letterale "100%" nel titolo e che si desideri cercare tutti i documenti di questo tipo. Poiché il carattere di percentuale (%) è un carattere jolly, è necessario utilizzare caratteri di escape per questo carattere utilizzando la clausola ESCAPE Entity SQL per eseguire correttamente la ricerca. Di seguito viene illustrato un esempio di questo filtro.

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

In questa espressione di ricerca il carattere jolly di percentuale (%) immediatamente successivo al carattere punto esclamativo (!) viene trattato come valore letterale anziché come carattere jolly. È possibile utilizzare come carattere di escape qualsiasi carattere, ad eccezione dei caratteri jolly Entity SQL e delle parentesi quadre ([ ]). Nell'esempio precedente il carattere punto esclamativo (!) è il carattere di escape.

Esempio

Nelle due query Entity SQL seguenti vengono utilizzati gli operatori LIKE e ESCAPE per determinare se una stringa di caratteri specifica corrisponde a un criterio specificato. La prima query consente di eseguire una ricerca per l'oggetto Name che inizia con i caratteri Down_. In questa query viene utilizzata l'opzione ESCAPE perché la sottolineatura (_) è un carattere jolly. Senza l'opzione ESCAPE, tramite la query verrebbe eseguita una ricerca di qualsiasi valore Name che inizia con la parola Down seguita da qualsiasi carattere singolo diverso dal carattere di sottolineatura. Le query sono basate sul modello Sales di AdventureWorks. Per compilare ed eseguire questa query, effettuare le operazioni seguenti:

  1. Seguire la procedura indicata in Procedura: eseguire una query che restituisce risultati PrimitiveType (EntityClient).

  2. Passare la query seguente come argomento al metodo 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%'

Vedere anche

Concetti

Riferimenti a Entity SQL