В прошлом посте я показывал, один из вариантов бессмысленного усложнения запроса использованием CASE, сегодня - продолжение.
Еще пара бесполезных CASE
Тут представлена попытка заNULLить значение, если оно равно чему-то.
Но ведь в PostgreSQL есть функция nullif, которая делает ровно то же самое:
NULLIF(значение1, значение2)
Функция NULLIF выдаёт значение NULL, если значение1 равно значение2; в противном случае она возвращает значение1. Это может быть полезно для реализации обратной операции к COALESCE. В частности, для примера, показанного выше:
SELECT NULLIF(value, '(none)') ...
В данном примере если value равно (none), выдаётся null, а иначе возвращается значение value.
То есть в примере выше стоит переписать короче и понятнее: