Los operadores de comparación (=
, <
, etc.) requieren que los argumentos izquierdo y derecho sean del mismo tipo. Exceptuando la igualdad y la no igualdad, los otros operadores de comparación no son útiles en el mundo real, pero permiten construir índices de árbol B en tipos de rango o de tiempo. Para los valores de rango, los operadores comparan primero el límite inferior y luego el límite superior. Para los valores de conjunto de marcas de tiempo y conjunto de períodos, los operadores comparan primero los períodos delimitadores y, si son iguales, comparan los primeros N instantes o períodos, donde N es el mínimo del número de instantes o períodos que componen ambos valores.
Los operadores de comparación disponibles para los tipos de conjunto y de rango se dan a continuación. Recuerde que los rangos de enteros siempre se representan por su forma canónica.
¿Son iguales los valores?
{set,spans} = {set,spans} → boolean
SELECT intspan '[1,3]' = intspan '[1,4)'; -- true SELECT floatspanset '{[1, 2),[2,3)}' = floatspanset '{[1,3)}'; -- true SELECT tstzspan '[2001-01-01, 2001-01-04)' = tstzspan '[2001-01-01, 2001-01-04)'; -- true SELECT tstzset '{2001-01-01, 2001-01-02}' = tstzset '{2001-01-01, 2001-01-04}'; -- false
¿Son diferentes los valores?
{set,spans} <> {set,spans} → boolean
SELECT tstzspan '[2001-01-01, 2001-01-04)' <> tstzspan '[2001-01-03, 2001-01-05)'; -- true SELECT tstzset '{2001-01-01, 2001-01-04}' <> tstzset '{2001-01-01, 2001-01-05}'; -- false
¿Es el primer valor menor que el segundo?
{set,spans} < {set,spans} → boolean
SELECT intspanset '{[1,2],[3,4]}' < intspanset '{[3, 4]}'; -- true SELECT floatspan '[3, 4]' < floatspan '(3, 4]'; -- true SELECT tstzspan '[2001-01-01, 2001-01-04)' < tstzspan '[2001-01-01, 2001-01-04]'; -- true SELECT tstzset '{2001-01-01, 2001-01-04}' < tstzset '{2001-01-01, 2001-01-05}'; -- true
¿Es el primer valor mayor que el segundo?
{set,spans} > {set,spans} → boolean
SELECT floatspan '[3, 4]' > floatspan '[3, 4)'; -- true SELECT tstzspan '[2001-01-03, 2001-01-04)' > tstzspan '[2001-01-02, 2001-01-05)'; -- true
¿Es el primer valor menor o igual que el segundo?
{set,spans} <= {set,spans} → boolean
SELECT floatspanset '{[1, 4)}' <= floatspanset '{[1, 5), [6, 7)}'; -- true SELECT tstzspanset '{[2001-01-01, 2001-01-04)}' <= tstzspanset '{[2001-01-01, 2001-01-05), [2001-01-06, 2001-01-07)}'; -- true
¿Es el primer valor mayor o igual que el segundo?
{set,spans} >= {set,spans} → boolean
SELECT intspanset '{[1, 4)}' >= intspanset '{[1, 5), [6, 7)}'; -- false SELECT tstzspan '[2001-01-03, 2001-01-05)' >= tstzspan '[2001-01-03, 2001-01-04)'; -- true