Conditional functions
Conditional functions allow for conditionally selecting input values. For
instance, the coalesce() function is useful for handling null data values and
providing replacement values.
coalesce#
coalesce(value [, ...]) - returns the first non-null argument in a provided
list of arguments in cases where null values should not appear in query results.
This function is an implementation of the COALESCE expression in PostgreSQL
and as such, should follow the expected behavior described in the
coalesce PostgreSQL documentation
Arguments:
coalesce(value [, ...])valueand subsequent comma-separated list of arguments which may be of any type except binary. If the provided arguments are of different types, one should beCASTable to another.
Return value:
The returned value is the first non-null argument passed.
Examples:
Given a table with the following records:
| timestamp | amount |
|---|---|
| 2021-02-11T09:39:16.332822Z | 1 |
| 2021-02-11T09:39:16.333481Z | null |
| 2021-02-11T09:39:16.333511Z | 3 |
The following example demonstrates how to use coalesce() to return a default
value of 0 for an expression if the amount column contains null values.
| timestamp | amount_not_null |
|---|---|
| 2021-02-11T09:39:16.332822Z | 1 |
| 2021-02-11T09:39:16.333481Z | 0 |
| 2021-02-11T09:39:16.333511Z | 3 |
nullif#
nullif(value1, value2) - returns a null value if value1 is equal to value2
or otherwise returns value1.
This function is an implementation of the NULLIF expression in PostgreSQL and
as such, should follow the expected behavior described in the
nullif PostgreSQL documentation.
Arguments:
value1is any numeric, char, or string value.value2is any numeric, char, or string value.
Return value:
The returned value is either NULL, or the first argument passed.
Examples:
Given a table with the following records:
| timestamp | amount |
|---|---|
| 2021-02-11T09:39:16.332822Z | 0 |
| 2021-02-11T09:39:16.333481Z | 11 |
| 2021-02-11T09:39:16.333511Z | 3 |
The following example demonstrates how to use nullif() to return a null if
the amount column contains 0 values.
| timestamp | amount_null_if_zero |
|---|---|
| 2021-02-11T09:39:16.332822Z | null |
| 2021-02-11T09:39:16.333481Z | 11 |
| 2021-02-11T09:39:16.333511Z | 3 |