Condición de comparación - Amazon Redshift

Condición de comparación

Las condiciones de comparación indican relaciones lógicas entre dos valores. Todas las condiciones de comparación son operadores binarios con un tipo devuelto booleano. Amazon Redshift admite los operadores de comparación que se describen en la tabla siguiente:

Operador Sintaxis Descripción
< a < b El valor a es inferior al valor b.
> a > b El valor a es superior al valor b.
<= a <= b El valor a es inferior o igual al valor b.
>= a >= b El valor a es superior o igual al valor b.
= a = b El valor a es igual al valor b.
<> o != a <> b or a != b El valor a no es igual al valor b.
ANY | SOME a = ANY(subquery) El valor a es igual a cualquier valor que la subconsulta devuelve.
ALL a <> ALL or != ALL (subquery)) El valor a no es igual a cualquier valor que la subconsulta devuelve.
IS TRUE | FALSE | UNKNOWN a IS TRUE El valor a es un valor TRUE booleano.

Notas de uso

= ANY | SOME

Las palabras clave ANY y SOME son sinónimos de la condición IN y devuelven true si la comparación es verdadera para al menos un valor devuelto por una subconsulta que brinda uno o más valores. Amazon Redshift solo admite la condición = (igual) para ANY y SOME. No se admiten las condiciones de desigualdad.

nota

Se admite el predicado ALL.

<> ALL

La palabra clave ALL es sinónimo de NOT IN (consulte la condición Condición IN) y devuelve true si la expresión no se incluye en los resultados de una subconsulta. Amazon Redshift solo admite la condición <> o != (no es igual) para ALL. No se admiten otras condiciones de comparación.

IS TRUE/FALSE/UNKNOWN

Los valores distintos de cero tienen un valor de TRUE, 0 tiene un valor de FALSE, y los valores nulos tienen un valor de UNKNOWN. Consulte el tipo de datos Tipo booleano.

Ejemplos

A continuación se muestran algunos ejemplos sencillos de condiciones de comparación:

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

La siguiente consulta devuelve lugares con más de 10 000 asientos de la tabla 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 ejemplo selecciona los usuarios (USERID) de la tabla USERS que les gusta el rock:

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

Este ejemplo selecciona los usuarios (USERID) de la tabla USERS para los que se desconoce si les gusta el 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

Ejemplos con una columna TIME

La siguiente tabla de ejemplo, TIME_TEST, tiene una columna TIME_VAL (tipo TIME) con tres valores insertados.

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

En el siguiente ejemplo, se extraen las 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

En el siguiente ejemplo, se comparan dos literales de tiempo.

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

Ejemplos con una columna TIMETZ

La siguiente tabla de ejemplo, TIMETZ_TEST, tiene una columna TIMETZ_VAL (tipo TIMETZ) con tres valores insertados.

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

En el siguiente ejemplo, se seleccionan solo los valores TIMETZ menores que 3:00:00 UTC. La comparación se realiza después de convertir el valor a la UTC.

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

En el siguiente ejemplo, se comparan dos literales TIMETZ. Para la comparación, se ignora la zona horaria.

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