477 читали · 3 года назад
Null, ноль и Undefined: разбираемся в сортах пустоты
Скоро это будет очень полезный навык Иногда в коде можно встретить что-то вроде такого: Может показаться, что null — это название переменной, но на самом деле это специальное значение, которое означает, что переменная есть, но в переменной ничего нет. Кроме этого, есть ещё одно интересное состояние переменной — undefined, которое означает, что переменная не определена. Давайте разберёмся, в чём разница и для чего это всё нужно. Минутка информатики. Если копать совсем глубоко, то в переменной не всегда лежат именно те данные, которые мы туда отправили...
PG: Сортировка по самому позднему заполненному полю из двух (d_last_login и d_active)
Для сортировки по самому позднему значению между двумя полями даты, где одно или оба могут быть NULL, в PostgreSQL есть несколько эффективных способов: SELECT * FROM your_table ORDER BY GREATEST( COALESCE(d_last_login, '1970-01-01'::timestamp), COALESCE(d_active, '1970-01-01'::timestamp) ) DESC; SELECT * FROM your_table ORDER BY CASE WHEN d_last_login IS NOT NULL AND d_active IS NOT NULL THEN GREATEST(d_last_login, d_active) WHEN d_last_login IS NOT NULL THEN d_last_login WHEN d_active IS NOT NULL THEN d_active ELSE NULL END DESC NULLS LAST; SELECT * FROM your_table ORDER BY ( SELECT MAX(dt) FROM...