Condizione di intervallo BETWEEN - Amazon Redshift

Amazon Redshift non supporterà più la creazione di nuove UDF Python a partire dal 1º novembre 2025. Se desideri utilizzare le UDF Python, creale prima di tale data. Le UDF Python esistenti continueranno a funzionare normalmente. Per ulteriori informazioni, consulta il post del blog.

Condizione di intervallo BETWEEN

Una condizione BETWEEN testa le espressioni per l'inclusione in un intervallo di valori, usando le parole chiave BETWEEN e AND.

Sintassi

expression [ NOT ] BETWEEN expression AND expression

Le espressioni possono essere numeriche, di caratteri o datetime, ma è necessario che siano compatibili. L'intervallo è inclusivo.

Esempi

Il primo esempio conta quante transazioni hanno registrato vendite di 2, 3 o 4 biglietti:

select count(*) from sales where qtysold between 2 and 4; count -------- 104021 (1 row)

La condizione di intervallo comprende i valori di inizio e di fine.

select min(dateid), max(dateid) from sales where dateid between 1900 and 1910; min | max -----+----- 1900 | 1910

È necessario che la prima espressione in una condizione di intervallo sia il valore minore e la seconda espressione il valore maggiore. L'esempio seguente restituirà sempre zero righe a causa dei valori delle espressioni:

select count(*) from sales where qtysold between 4 and 2; count ------- 0 (1 row)

Tuttavia, l'applicazione del modificatore NOT invertirà la logica e produrrà un conto di tutte le righe:

select count(*) from sales where qtysold not between 4 and 2; count -------- 172456 (1 row)

La query seguente restituisce un elenco di sedi con 20.000-50.000 posti a sedere:

select venueid, venuename, venueseats from venue where venueseats between 20000 and 50000 order by venueseats desc; venueid | venuename | venueseats ---------+-------------------------------+------------ 116 | Busch Stadium | 49660 106 | Rangers BallPark in Arlington | 49115 96 | Oriole Park at Camden Yards | 48876 ... (22 rows)

L'esempio seguente mostra l'utilizzo di BETWEEN per i valori di data:

select salesid, qtysold, pricepaid, commission, saletime from sales where eventid between 1000 and 2000 and saletime between '2008-01-01' and '2008-01-03' order by saletime asc; salesid | qtysold | pricepaid | commission | saletime --------+---------+-----------+------------+--------------- 65082 | 4 | 472 | 70.8 | 1/1/2008 06:06 110917 | 1 | 337 | 50.55 | 1/1/2008 07:05 112103 | 1 | 241 | 36.15 | 1/2/2008 03:15 137882 | 3 | 1473 | 220.95 | 1/2/2008 05:18 40331 | 2 | 58 | 8.7 | 1/2/2008 05:57 110918 | 3 | 1011 | 151.65 | 1/2/2008 07:17 96274 | 1 | 104 | 15.6 | 1/2/2008 07:18 150499 | 3 | 135 | 20.25 | 1/2/2008 07:20 68413 | 2 | 158 | 23.7 | 1/2/2008 08:12

È importante notare che, sebbene l'intervallo di BETWEEN sia inclusivo, le date hanno un valore di ora predefinito di 00:00:00. L'unica riga valida del 3 gennaio per la query di esempio sarebbe una riga con saletime 1/3/2008 00:00:00.