Operatori di confronto (Motore di database)

Gli operatori di confronto sono utilizzati con dati alfabetici, numerici o di data e possono essere utilizzati nella clausola WHERE o HAVING di una query. Questi operatori restituiscono un tipo di dati booleano, ovvero TRUE o FALSE, a seconda che venga soddisfatta o meno la condizione specificata.

Ad esempio, per calcolare il premio produzione per i dipendenti assunti fino al 15 marzo 1998, è necessario verificare per ciascun dipendente se il valore hire_date è minore o uguale alla data 15 marzo 1998 in modo da ottenere l'elenco dei dipendenti a cui spetta il premio produzione.

Gli operatori di confronto validi sono i seguenti:

  • > (maggiore di)

  • < (minore di)

  • = (uguale)

  • <= (minore o uguale)

  • >= (maggiore o uguale)

  • != (diverso da)

  • <> (diverso da)

  • !< (non minore di)

  • !> (non maggiore di)

Gli operatori di confronto possono inoltre essere utilizzati nella logica del programma per verificare una condizione. Ad esempio, se il valore corrispondente a un paese/area geografica è UK anziché Spagna, potrebbe essere necessario applicare tariffe di spedizione diverse. In questo caso, per ottenere il risultato desiderato è necessario utilizzare una combinazione di più elementi, ovvero un operatore di confronto, un'espressione (il nome della colonna), un valore letterale ("UK") e una parola chiave di programmazione per il controllo del flusso (IF).

Se si dispone delle autorizzazioni di accesso ai dati per l'esecuzione di query, è possibile utilizzare gli operatori di confronto in query aggiuntive. Nel caso di istruzioni che comportano la modifica dei dati, è consigliabile utilizzare gli operatori di confronto solo se si è certi di disporre delle autorizzazioni adeguate e del fatto che i dati saranno modificati unicamente da un gruppo limitato di utenti. Ciò contribuirà a mantenere l'integrità dei dati.

Nelle query vengono utilizzati anche confronti tra stringhe per confrontare il valore di una variabile locale, di un cursore o di una colonna con una costante. Ad esempio, si supponga di dover stampare tutte le righe cliente per le quali il paese/area geografica sia UK. Nella tabella seguente vengono illustrati esempi di confronti tra stringhe tra dati Unicode e non Unicode. ST1 è char e ST2 è nchar.

Confronto

Descrizione

ST1 = ST2

Equivale a CONVERT(nchar, ST1) = ST2 o CAST(ST1 AS nchar) = ST2.

ST1 = 'stringa non Unicode'

Confronto normale tra stringhe ISO.

ST2 = 'stringa non-Unicode'

Equivale a ST2 = CONVERT(nchar, 'stringa non-Unicode') o ST2 = CAST('stringa non-Unicode' AS nchar).

ST2 = N'stringa Unicode'

Confronto Unicode.

CONVERT(nchar, ST1) = ST2 o CAST(ST1 AS nchar) = ST2

Confrontro Unicode.

ST1 = CONVERT(char, ST2) o ST1 = CAST(ST2 AS char)

Confronto normale tra stringhe ISO.

N'' (stringa Unicode vuota tra parentesi)

Stringa vuota.

'' (stringa non Unicode vuota)

Stringa vuota o contenente un carattere vuoto, a seconda delle impostazioni ISO.