Operatori di confronto semplici ESQL

Questa sezione descrive gli operatori di confronto semplici di ESQL. Per informazioni relative agli operatori di confronto complessi di ESQL, consultare Operatori di confronto complessi ESQL.

ESQL fornisce un insieme di operatori di confronto (predicati). Ciascun operatore confronta due valori scalari ed il risultato un valore booleano. Se uno degli operatori è null, il risultato è null. In caso contrario, il risultato è true se la condizione è soddisfatta e false se la condizione non è soddisfatta.

Gli operatori di confronto possono essere applicati a tutti i tipi di dati scalari. Tuttavia, se i due operandi sono di tipi diversi, vengono applicate regole speciali. Tali regole sono descritte in Assegnazioni implicite.

Alcuni operatori di confronto supportano anche il confronto di righe ed elenchi. Tali operatori sono riportati di seguito.

Operatore >
Il primo operando è maggiore del secondo.
Operatore <
Il primo operando è minore del secondo.
Operatore >=
Il primo operando è maggiore o uguale al secondo.
Operatore <=
Il primo operando è minore o uguale al secondo.
Operatore =
Il primo operando è uguale al secondo.

Questo operatore può confrontare righe ed elenchi. Consultare Confronti tra ROW e LIST per una descrizione di confronto tra elenchi e righe.

Operatore <>
Il primo operando non è uguale al secondo.

Questo operatore può confrontare righe ed elenchi. Consultare Confronti tra ROW e LIST per una descrizione di confronto tra elenchi e righe.

Di seguito è riportato il Il significato di "equal", "less" e "greater" in questo contesto:
  • Per i tipi numerici (INTEGER, FLOAT, DECIMAL) vengono confrontati i valori numerici. Quindi, 4,2 è maggiore di 2,4 e -2,4 è maggiore di -4,2.
  • Per i tipi datetime (DATE, TIME, TIMESTAMP, GMTTIME, GMTTIMESTAMP ma non INTERVAL), una data successiva è considerata maggiore di una precedente. Quindi, la data 31-03-2004 è maggiore della data 24-10-1947.
  • Per il tipo INTERVAL, un intervallo di tempo più grande è considerato maggiore di un intervallo di tempo più piccolo.

Per i tipi stringa (CHARACTER, BLOB, BIT), il confronto è lessicografico. A partire da sinistra, vengono confrontati i singoli elementi (ciascun carattere, byte o bit). Se non vengono rilevate differenze, le stringhe sono uguali. Se viene rilevata una differenza, i valori sono maggiori se il primo elemento diverso nel primo operando è maggiore dell'elemento corrispondente nel secondo e minori se minori. Nel caso in cui due stringhe siano di lunghezza diversa ma uguali fino ad un certo punto, la stringa più lunga è considerata maggiore. Quindi:

'ABD' è maggiore di 'ABC' 
'ABC' è maggiore di 'AB'  
Gli spazi vuoti finali sono considerati insignificanti nei confronti tra caratteri. Se si desidera verificare che le stringhe siano realmente identiche, è necessario confrontare le stringhe e le relative lunghezze. Ad esempio:
'ABC  ' è uguale a 'ABC'

Notare che il confronto di stringhe di lunghezza uno è equivalente al confronto di singoli caratteri, byte o bit. Poiché ESQL non dispone di tipi di dati a carattere, byte o bit singoli, è pratica standard l'utilizzo di stringhe di lunghezza uno per confrontare caratteri, byte o bit singoli.

Concetti correlati
Panoramica dei flussi di messaggi
Panoramica delle mappature di messaggi
Attività correlate
Sviluppo di flussi di messaggi
Sviluppo di ESQL
Riferimenti correlati
Operatori di confronto complessi ESQL
Nodi integrati
Riferimento ESQL
Confronti tra ROW e LIST
Assegnazioni implicite
Informazioni particolari | Marchi | Download | Libreria | Supporto | Commenti
Copyright IBM Corporation 1999, 2006 Ultimo aggiornamento: ago 17, 2006
ak01040_