Condição de comparação - Amazon Redshift

Condição de comparação

A comparação de condições indica as relações lógicas entre dois valores. Todas as condições de comparação são operadores binários com um tipo de retorno booleano. O Amazon Redshift oferece suporte para os operadores de comparação descritos na seguinte tabela:

Operador Sintaxe Descrição
< a < b O valor a é menor que o valor b.
> a > b O valor a é maior que o valor b.
<= a <= b O valor a é menor ou igual ao valor b.
>= a >= b O valor a é maior ou igual ao valor b.
= a = b O valor a é igual ao valor b.
<> ou != a <> b or a != b O valor a não é igual ao valor b.
ANY | SOME a = ANY(subquery) O valor a é igual a qualquer valor retornado pela subconsulta.
ALL a <> ALL or != ALL (subquery)) O valor a não é igual a qualquer valor retornado pela subconsulta.
IS TRUE | FALSE | UNKNOWN a IS TRUE O valor a é um booleano TRUE.

Observações de uso

= ANY | SOME

As palavras-chave ANY e SOME são sinônimos da condição IN e retornam true se a comparação for true para pelo menos um valor retornado por uma subconsulta que retorna um ou mais valores. O Amazon Redshift suporta apenas a condição = (igual) para ANY e SOME. As condições de desigualdade não são compatíveis.

nota

O predicado ALL não é compatível.

<> ALL

A palavra-chave ALL é sinônimo de NOT IN (consulte a condição Condição IN) e retorna true se a expressão não for incluída nos resultados da subconsulta. O Amazon Redshift oferece suporte apenas à condição <> ou != (não é igual) para ALL. Outras condições de comparação não são compatíveis.

IS TRUE/FALSE/UNKNOWN

Valores diferentes de zero equivalem a TRUE, 0 equivale a FALSE, e nulo equivale a UNKNOWN. Consulte o tipo de dado Tipo booliano.

Exemplos

Veja alguns exemplos simples de condições de comparação:

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

A seguinte consulta retorna locais com mais de 10.000 assentos da tabela 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)

Este exemplo seleciona os usuários (USERID) da tabela USERS que gostam de rock:

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

Este exemplo seleciona os usuários (USERID) da tabela USERS onde não se sabe se eles gostam de 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

Exemplos com uma coluna TIME

A tabela de exemplo a seguir TIME_TEST tem uma coluna TIME_VAL (tipo TIME) com três valores inseridos.

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

O exemplo a seguir extrai as horas de cada timetz_val.

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

O exemplo a seguir compara dois literais de tempo.

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

Exemplos com uma coluna TIMETZ

A tabela de exemplo a seguir TIMETZ_TEST tem uma coluna TIMETZ_VAL (tipo TIMETZ) com três valores inseridos.

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

O exemplo a seguir seleciona apenas os valores TIMETZ menores que 3:00:00 UTC. A comparação é feita depois de converter o valor para UTC.

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

O seguinte exemplo compara dois literais TIMETZ. O fuso horário é ignorado para a comparação.

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