1
0
mirror of https://github.com/jbranchaud/til synced 2026-01-04 23:58:01 +00:00

Add The nullif Function as a Postgres til

This commit is contained in:
jbranchaud
2021-07-02 19:26:47 -05:00
parent 673dcbfac1
commit a3f4d7179f
2 changed files with 45 additions and 1 deletions

View File

@@ -0,0 +1,43 @@
# The nullif Function
PostgreSQL, in addition to generalized case statements, includes the
[`nullif`](https://www.postgresql.org/docs/current/functions-conditional.html)
function. The docs describe it as a way "to perform the inversation operation
of a `coalesce`".
Rather than resolving to some fallback value if the primary value is `null`
(like `coalesce` does), it will resolve to `null` if the given values are the
same.
```sql
> select nullif(0, 0);
nullif
--------
ø
(1 row)
```
If the values are not equal, then the first value is the result of the
function.
```sql
> select nullif(1, 0);
nullif
--------
1
(1 row)
```
One way this can be used is in conjunction with the `coalesce` function. For
instance, if I have a table of values that are either 0 or a positive number, I
can coerce all the zeros to be `1` like so.
```sql
> select coalesce(nullif(0, 0), 1);
coalesce
----------
1
(1 row)
```
h/t [Ian Jones](https://twitter.com/_jonesian)