Comparisons
Version 0.8.1

## Comparison Operators

The table below shows the standard comparison operators. Whenever either of the input arguments is `NULL`, the output of the comparison is `NULL`.

Operator Description Example Result
`<` less than `2 < 3` `TRUE`
`>` greater than `2 > 3` `FALSE`
`<=` less than or equal to `2 <= 3` `TRUE`
`>=` greater than or equal to `4 >= NULL` `NULL`
`=` equal `NULL = NULL` `NULL`
`<>` or `!=` not equal `2 <> 2` `FALSE`

The table below shows the standard distinction operators. These operators treat `NULL` values as equal.

Operator Description Example Result
`IS DISTINCT FROM` equal, including `NULL` `2 IS DISTINCT FROM NULL` `TRUE`
`IS NOT DISTINCT FROM` not equal, including `NULL` `NULL IS NOT DISTINCT FROM NULL` `TRUE`

## BETWEEN and IS (NOT) NULL

Besides the standard comparison operators there are also the `BETWEEN` and `IS (NOT) NULL` operators. These behave much like operators, but have special syntax mandated by the SQL standard. They are shown in the table below.
Note that BETWEEN and NOT BETWEEN are only equivalent to the examples below in the cases where both `a`, `x` and `y` are of the same type, as BETWEEN will cast all of its inputs to the same type.

Predicate Description
`a BETWEEN x AND y` equivalent to `a >= x AND a <= y`
`a NOT BETWEEN x AND y` equivalent to `a < x OR a > y`
`expression IS NULL` `TRUE` if expression is `NULL`, `FALSE` otherwise
`expression ISNULL` alias for `IS NULL` (non-standard)
`expression IS NOT NULL` `FALSE` if expression is `NULL`, `TRUE` otherwise
`expression NOTNULL` alias for `IS NOT NULL` (non-standard)
Search Shortcut cmd + k | ctrl + k