Operatori di confronto (Visual Database Tools)

In una condizione di ricerca è possibile utilizzare gli operatori standard di SQL.

Quando si utilizzano gli operatori in una condizione di ricerca, è necessario attenersi alle seguenti regole:

  • I tipi di dati utilizzati nel confronto devono essere corrispondenti. Vale a dire, il testo può essere confrontato soltanto con altro testo, i numeri con numeri e così via. Alcuni sistemi di gestione di database consentono l'utilizzo di una funzione o di una parola chiave, ad esempio CAST, per convertire temporaneamente i dati in un altro tipo di dati. Per informazioni dettagliate, vedere la documentazione relativa al database.

  • Se si confrontano dati di testo, il risultato dipenderà dal set di caratteri al momento utilizzato. Se, ad esempio, una tabella è stata creata con i caratteri scandinavi, i risultati della ricerca potrebbero essere diversi a seconda che il set di caratteri, o tabella codici, corrente sia quello scandinavo o meno.

  • Se un valore di confronto è Null, il risultato sarà sconosciuto. I valori Null non corrispondono ad alcun altro valore, comprese altre istanze di valori Null. Se ad esempio si effettua una ricerca di un nome che inizia con la lettera "M" o con una lettera successiva dell'alfabeto (name >= 'M'), e alcune righe non contengono alcun valore, tali righe non verranno visualizzate, indipendentemente dall'operatore di confronto utilizzato.

Nella seguente tabella sono elencati gli operatori delle condizioni di ricerca definiti per SQL standard.

Nota

Le informazioni contenute in questo argomento derivano dalle regole relative a SQL-92 standard. In ogni database è tuttavia possibile implementare SQL in modo personalizzato. Di conseguenza, le indicazioni fornite potrebbero non essere valide per tutti i database. In caso di problemi nell'utilizzo degli operatori con un particolare database, vedere la documentazione del database in uso.

Operatore

Significato

Esempio nel riquadro Criteri*

Esempio nel riquadro SQL

=

Uguale

= 'Smith'
SELECT fname, lname
FROM employees
WHERE lname = 'Smith'

<> !=

Diverso da

<> 'Active'
SELECT fname, lname
FROM employees
WHERE status <> 'Active'

>

Maggiore di

> '01 Jan 1995'**
SELECT fname, lname
FROM employees
WHERE hire_date >
 '12/31/90'

<

Minore di

< 100
SELECT fname, lname
FROM employees
WHERE job_lvl < 100

>= !<

Maggiore o uguale a

>= 'T'
SELECT au_lname
FROM authors
WHERE au_lname >= 'T'

<= !>

Minore o uguale a

<= '01 Jan 1995'**
SELECT fname, lname
FROM employees
WHERE hire_date <= 
 '01/01/95'

BETWEEN expr1 AND expr2

Confronta intervalli di valori

BETWEEN 
'01 Jan 1995' 
AND 
'31 Dec 1995'**
SELECT fname, lname
FROM employees
WHERE hire_date 
 BETWEEN '12/31/90'
 AND '12/31/91'

IS [NOT] NULL

Verifica se il contenuto di una colonna o il risultato di un'espressione è Null

IS NULL
SELECT fname, lname
FROM employees
WHERE photo_on_file IS NULL

[NOT] LIKE

Applica un criterio di ricerca (generalmente limitato a tipi di dati carattere)

LIKE ('MAC%')
SELECT fname, lname
FROM employees
WHERE lname LIKE ('MAC%')

expr1 [NOT] IN (val1, val2, ...) -oppure- expr1 [NOT] IN (subquery)

Confronta un elenco di valori specifici verificando se expr1 si trova in un elenco di valori o nei risultati di una sottoquery

IN ('SW', 'SE')
supplier_id IN
  (subquery)
SELECT fname, lname
FROM employees
WHERE sales_region IN ('SW', 'SE')
SELECT product_name
FROM products
WHERE supplier_id IN
  (SELECT supplier_id
  FROM supplier
  WHERE (country = 'Sweden'))

ANY (SOME)

Verifica se una o più righe nel gruppo di risultati di una sottoquery soddisfano la condizione specificata (ANY e SOME sono sinonimi; in Progettazione query e Progettazione visualizzazioni verrà utilizzato ANY per la creazione di un'istruzione SQL)

<> ANY (subquery)
SELECT au_lname, au_fname
FROM authors
where city <> any
 (SELECT city FROM publishers)

ALL

Verifica se tutte le righe nel gruppo di risultati di una sottoquery soddisfano la condizione specificata

advance > ALL (subquery)
SELECT title FROM titles
where advance > all
  (SELECT advance FROM
   publishers,titles
  where titles.pub_id 
   = publishers.pub_id
  AND pub_name = 
   'Alogdata Infosystems')

[NOT] EXISTS

Verifica se una sottoquery restituisce un risultato qualsiasi (non un risultato specifico)

EXISTS (subquery)
SELECT product_name
FROM products
WHERE EXISTS
  (SELECT * FROM 
   orders, products
  WHERE orders.prod_id 
  = products.prod_id)

*   Per maggiore chiarezza, negli esempi relativi al riquadro Criteri è incluso un solo esempio per ogni operatore e non viene indicato in quale colonna di dati viene effettuata la ricerca.

**   Le date possono essere immesse nel riquadro Criteri utilizzando il formato specificato nella finestra di dialogo Impostazioni internazionali di Windows. Per informazioni dettagliate, vedere Regole per l'immissione di valori di ricerca.

Vedere anche

Altre risorse

Progettazione di query e visualizzazioni

Riferimenti (Visual Database Tools)