Condizione di ricerca (Transact-SQL)

Combinazione di uno o più predicati tramite gli operatori logici AND, OR e NOT.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQL

Sintassi

< search_condition > ::= 
    { [ NOT ] <predicate> | ( <search_condition> ) } 
    [ { AND | OR } [ NOT ] { <predicate> | ( <search_condition> ) } ] 
[ ,...n ] 
<predicate> ::= 
    { expression { = | < > | ! = | > | > = | ! > | < | < = | ! < } expression 
    | string_expression [ NOT ] LIKE string_expression 
  [ ESCAPE 'escape_character' ] 
    | expression [ NOT ] BETWEEN expression AND expression 
    | expression IS [ NOT ] NULL 
    | CONTAINS 
    ( { column | * } , '< contains_search_condition >' ) 
    | FREETEXT ( { column | * } , 'freetext_string' ) 
    | expression [ NOT ] IN ( subquery | expression [ ,...n ] ) 
    | expression { = | < > | ! = | > | > = | ! > | < | < = | ! < } 
  { ALL | SOME | ANY} ( subquery ) 
    | EXISTS ( subquery )     } 

Argomenti

  • <search_condition>
    Specifica le condizioni per le righe restituite nel set dei risultati di un'istruzione SELECT, di un'espressione di query o di una subquery. Per un'istruzione UPDATE specifica le righe che devono essere aggiornate. Per un'istruzione DELETE specifica le righe che devono essere eliminate. Non sono previsti limiti per il numero di predicati che è possibile includere in una condizione di ricerca di un'istruzione Transact-SQL.
  • NOT
    Nega l'espressione booleana specificata dal predicato. Per ulteriori informazioni, vedere NOT (Transact-SQL).
  • AND
    Combina due condizioni e restituisce TRUE quando entrambe le condizioni sono TRUE. Per ulteriori informazioni, vedere AND (Transact-SQL).
  • OR
    Combina due condizioni e restituisce TRUE quando una delle due condizioni è TRUE. Per ulteriori informazioni, vedere OR (Transact-SQL).
  • < predicate >
    Espressione che restituisce TRUE, FALSE o UNKNOWN.
  • expression
    Nome di colonna, costante, funzione, variabile, subquery scalare o qualsiasi combinazione di nomi di colonna, costanti e funzioni concatenati da uno o più operatori oppure da una subquery. L'espressione può inoltre includere la funzione CASE.
  • =
    Operatore utilizzato per verificare l'uguaglianza di due espressioni.
  • <>
    Operatore utilizzato per verificare la disuguaglianza di due espressioni.
  • !=
    Operatore utilizzato per verificare la disuguaglianza di due espressioni.
  • >
    Operatore utilizzato per verificare che un'espressione sia maggiore di un'altra.
  • >=
    Operatore utilizzato per verificare che un'espressione sia maggiore o uguale a un'altra.
  • !>
    Operatore utilizzato per verificare che un'espressione non sia maggiore di un'altra.
  • <
    Operatore utilizzato per verificare che un'espressione sia minore di un'altra.
  • <=
    Operatore utilizzato per verificare che un'espressione sia minore o uguale a un'altra.
  • !<
    Operatore utilizzato per verificare che un'espressione non sia minore di un'altra.
  • string_expression
    Stringa di caratteri e caratteri jolly.
  • [ NOT ] LIKE
    Indica che la successiva stringa di caratteri deve essere utilizzata come criterio di ricerca. Per ulteriori informazioni, vedere LIKE (Transact-SQL).
  • ESCAPE 'escape_ character'
    Consente la ricerca di un carattere jolly come carattere effettivo in una stringa di caratteri, ignorando la funzionalità di carattere jolly. escape_character è il carattere inserito davanti al carattere jolly per contrassegnarne l'utilizzo speciale.
  • [ NOT ] BETWEEN
    Specifica un intervallo di valori inclusivo. Utilizzare l'operatore AND per separare il valore iniziale da quello finale. Per ulteriori informazioni, vedere BETWEEN (Transact-SQL).
  • IS [ NOT ] NULL
    Specifica una ricerca di valori Null o non Null, a seconda delle parole chiave utilizzate. Un'espressione con un operatore bit per bit o aritmetico restituisce NULL se uno degli operandi è NULL.
  • CONTAINS
    Esegue ricerche in colonne che includono dati di tipo carattere per individuare corrispondenze esatte o fuzzy (meno esatte) di singole parole e frasi, la prossimità di parole che si trovano a una certa distanza tra di loro e le corrispondenze ponderate. È possibile utilizzare questa opzione solo con istruzioni SELECT. Per ulteriori informazioni, vedere CONTAINS (Transact-SQL).
  • FREETEXT
    Implementa un tipo semplice di query in linguaggio naturale per l'esecuzione di ricerche in colonne che includono dati di tipo carattere, per individuare valori che corrispondano al significato piuttosto che alle parole esatte del predicato. È possibile utilizzare questa opzione solo con istruzioni SELECT. Per ulteriori informazioni, vedere FREETEXT (Transact-SQL).
  • [ NOT ] IN
    Specifica la ricerca di un'espressione in base alla presenza o meno di tale espressione in un elenco. L'espressione di ricerca può essere una costante o un nome di colonna. L'elenco può essere un set di costanti o, più comunemente, una subquery. Racchiudere l'elenco di valori tra parentesi. Per ulteriori informazioni, vedere IN (Transact-SQL).
  • subquery
    Questo argomento può essere considerato un'istruzione SELECT con restrizioni ed è simile a <query_expression> nell'istruzione SELECT. La clausola ORDER BY, la clausola COMPUTE e la parola chiave INTO non sono consentite. Per ulteriori informazioni, vedere SELECT (Transact-SQL).
  • ALL
    Utilizzato con un operatore di confronto e una subquery. Restituisce TRUE per <predicate> se tutti i valori recuperati per la subquery soddisfano l'operazione di confronto, restituisce FALSE se non tutti i valori soddisfano il criterio di confronto oppure la subquery non restituisce righe all'istruzione esterna. Per ulteriori informazioni, vedere ALL (Transact-SQL).
  • { SOME | ANY }
    Utilizzato con un operatore di confronto e una subquery. Restituisce TRUE per <predicate> se almeno un valore recuperato per la subquery soddisfa l'operazione di confronto, restituisce FALSE se nessun valore della subquery soddisfa il criterio di confronto oppure la subquery non restituisce righe all'istruzione esterna. Negli altri casi, l'espressione risulta UNKNOWN. Per ulteriori informazioni, vedere SOME | ANY (Transact-SQL).
  • EXISTS
    Utilizzato con una subquery per verificare l'esistenza delle righe restituite dalla subquery. Per ulteriori informazioni, vedere EXISTS (Transact-SQL).

Osservazioni

L'ordine di precedenza degli operatori logici prevede NOT come operatore con precedenza massima, seguito da AND e quindi da OR. È possibile utilizzare le parentesi per ignorare tale ordine di precedenza in una condizione di ricerca. L'ordine di valutazione degli operatori logici può variare a seconda delle scelte effettuate da Query Optimizer. Per ulteriori informazioni sul funzionamento degli operatori logici applicati a valori logici, vedere AND (Transact-SQL), OR (Transact-SQL) e NOT (Transact-SQL).

Esempi

A. Utilizzo della clausola WHERE con la sintassi LIKE ed ESCAPE

Nell'esempio seguente vengono cercate le righe in cui la colonna LargePhotoFileName contiene i caratteri green_ e si utilizza l'opzione ESCAPE perché _ è un carattere jolly. Senza l'opzione ESCAPE, la query eseguirebbe una ricerca di qualsiasi valore di descrizione contenente la parola green seguita da qualsiasi carattere singolo diverso dal carattere _.

USE AdventureWorks ;
GO
SELECT * 
FROM Production.ProductPhoto
WHERE LargePhotoFileName LIKE '%greena_%' ESCAPE 'a' ;

B. Utilizzo della clausola WHERE e della sintassi LIKE con dati Unicode

Nell'esempio seguente viene utilizzata la clausola WHERE per recuperare l'indirizzo postale delle società con sede al di fuori degli Stati Uniti (US) e in città con nome che inizia con Mn.

USE AdventureWorks ;
GO
SELECT AddressLine1, AddressLine2, City, PostalCode, CountryRegionCode  
FROM Person.Address AS a
JOIN Person.StateProvince AS s ON a.StateProvinceID = s.StateProvinceID
WHERE CountryRegionCode NOT IN ('US')
AND City LIKE N'Mn%' ;

Vedere anche

Riferimento

Funzioni di aggregazione (Transact-SQL)
CASE (Transact-SQL)
CONTAINSTABLE (Transact-SQL)
Cursori (Transact-SQL)
DELETE (Transact-SQL)
Espressioni (Transact-SQL)
FREETEXTTABLE (Transact-SQL)
FROM (Transact-SQL)
Operatori (Transact-SQL)
UPDATE (Transact-SQL)

Altre risorse

Esecuzione di query su SQL Server tramite la ricerca full-text
Operatori logici

Guida in linea e informazioni

Assistenza su SQL Server 2005