Condizione di confronto - Amazon Redshift

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Condizione di confronto

Le condizioni di confronto esprimono le relazioni logiche tra due valori. Tutte le condizioni di confronto sono operatori binari con un tipo restituito booleano. Amazon Redshift supporta gli operatori di confronto descritti nella tabella seguente:

Operatore Sintassi Descrizione
< a < b Il valore a è inferiore al valore b.
> a > b Il valore a è superiore al valore b.
<= a <= b Il valore a è inferiore o uguale al valore b.
>= a >= b Il valore a è superiore o uguale al valore b.
= a = b Il valore a è uguale al valore b.
<> o != a <> b or a != b Il valore a non è uguale al valore b.
ANY | SOME a = ANY(subquery) Il valore a è uguale a qualsiasi valore restituito dalla subquery.
ALL a <> ALL or != ALL (subquery)) Il valore a non è uguale a nessun valore restituito dalla subquery.
IS TRUE | FALSE | UNKNOWN a IS TRUE Il valore a è un valore booleano TRUE.

Note per l'utilizzo

= ANY | SOME

Le parole chiave ANY e SOME sono sinonimi della condizione IN e restituiscono true se il confronto ha esito positivo per almeno un valore restituito da una query secondaria che restituisce uno o più valori. Amazon Redshift supporta solo la condizione = (uguale) per ANY e SOME. Le condizioni di disuguaglianza non sono supportate.

Nota

Il predicato ALL non è supportato.

<> ALL

La parola chiave ALL è sinonima di NOT IN (vedere la condizione Condizione IN) e restituisce true se l'espressione non è compresa nei risultati della query secondaria. Amazon Redshift supporta la condizione <> or != (diverso) solo per ALL. Altre condizioni di confronto non sono supportate.

IS TRUE/FALSE/UNKNOWN

I valori diversi da zero equivalgono a TRUE, 0 equivale a FALSE e null equivale a UNKNOWN. consultare il tipo di dati Tipo booleano.

Esempi

Di seguito sono elencati alcuni semplici esempi di condizioni di confronto:

a = 5 a < b min(x) >= 5 qtysold = any (select qtysold from sales where dateid = 1882

La query seguente restituisce sedi con più di 10.000 posti a sedere dalla tabella VENUE:

select venueid, venuename, venueseats from venue where venueseats > 10000 order by venueseats desc; venueid | venuename | venueseats ---------+--------------------------------+------------ 83 | FedExField | 91704 6 | New York Giants Stadium | 80242 79 | Arrowhead Stadium | 79451 78 | INVESCO Field | 76125 69 | Dolphin Stadium | 74916 67 | Ralph Wilson Stadium | 73967 76 | Jacksonville Municipal Stadium | 73800 89 | Bank of America Stadium | 73298 72 | Cleveland Browns Stadium | 73200 86 | Lambeau Field | 72922 ... (57 rows)

Questo esempio seleziona dalla tabella USERS gli utenti (USERID) ai quali piace la musica rock:

select userid from users where likerock = 't' order by 1 limit 5; userid -------- 3 5 6 13 16 (5 rows)

Questo esempio seleziona dalla tabella USERS gli utenti (USERID) per i quali si sa se gli piace la musica rock:

select firstname, lastname, likerock from users where likerock is unknown order by userid limit 10; firstname | lastname | likerock ----------+----------+---------- Rafael | Taylor | Vladimir | Humphrey | Barry | Roy | Tamekah | Juarez | Mufutau | Watkins | Naida | Calderon | Anika | Huff | Bruce | Beck | Mallory | Farrell | Scarlett | Mayer | (10 rows

Esempi con una colonna TIME

La tabella di esempio seguente TIME_TEST ha una colonna TIME_VAL (tipo TIME) con tre valori inseriti.

select time_val from time_test; time_val --------------------- 20:00:00 00:00:00.5550 00:58:00

Nell'esempio seguente vengono estratte le ore da ogni timetz_val.

select time_val from time_test where time_val < '3:00'; time_val --------------- 00:00:00.5550 00:58:00

L'esempio seguente confronta due valori letterali temporali.

select time '18:25:33.123456' = time '18:25:33.123456'; ?column? ---------- t

Esempi con una colonna TIMETZ

La tabella di esempio seguente TIMETZ_TEST ha una colonna TIMETZ_VAL (tipo TIMETZ) con tre valori inseriti.

select timetz_val from timetz_test; timetz_val ------------------ 04:00:00+00 00:00:00.5550+00 05:58:00+00

Nell'esempio seguente vengono selezionati solo i valori TIMETZ inferiori a 3:00:00 UTC. Il confronto viene effettuato dopo aver convertito il valore in UTC.

select timetz_val from timetz_test where timetz_val < '3:00:00 UTC'; timetz_val --------------- 00:00:00.5550+00

L'esempio seguente confronta due valori letterali TIMETZ. Il fuso orario viene ignorato per il confronto.

select time '18:25:33.123456 PST' < time '19:25:33.123456 EST'; ?column? ---------- t