CASEТут ниже представлена попытка заNULLить значение, если оно равно чему-то.
, CASE WHEN sdate = '1900-01-01' THEN NULL ELSE sdate END sdate
, CASE WHEN mdate = '1900-01-01' THEN NULL ELSE mdate END mdate
Но ведь в PostgreSQL есть функция
nullif, которая делает ровно то же самое.NULLIF(значение1, значение2)Функция
NULLIF выдаёт значение NULL, если значение1 равно значение2; в противном случае она возвращает значение1. Это может быть полезно для реализации обратной операции к COALESCE. В частности, для примера, показанного выше:SELECT NULLIF(value, '(none)') ...В данном примере если
value равно (none), выдаётся null, а иначе возвращается значение value.То есть в примере выше можно переписать короче и понятнее:
, NULLIF(sdate, '1900-01-01') sdate
, NULLIF(mdate, '1900-01-01') mdate
#PostgreSQL
@sqlhub
