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 [, ...]) value and subsequent comma-separated list of arguments which may be of any type except binary. If the provided arguments are of different types, one should be CASTable to another.

Return value:

The returned value is the first non-null argument passed.

Examples:

Given a table with the following records:

timestampamount
2021-02-11T09:39:16.332822Z1
2021-02-11T09:39:16.333481Znull
2021-02-11T09:39:16.333511Z3

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.

SELECT timestamp,
coalesce(amount, 0) as amount_not_null
FROM transactions
timestampamount_not_null
2021-02-11T09:39:16.332822Z1
2021-02-11T09:39:16.333481Z0
2021-02-11T09:39:16.333511Z3

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:

  • value1 is any numeric, char, or string value.
  • value2 is 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:

timestampamount
2021-02-11T09:39:16.332822Z0
2021-02-11T09:39:16.333481Z11
2021-02-11T09:39:16.333511Z3

The following example demonstrates how to use nullif() to return a null if the amount column contains 0 values.

SELECT timestamp,
nullif(amount, 0) as amount_null_if_zero
FROM transactions
timestampamount_null_if_zero
2021-02-11T09:39:16.332822Znull
2021-02-11T09:39:16.333481Z11
2021-02-11T09:39:16.333511Z3