TGViewer
Data Science. SQL hub Data Science. SQL hub @sqlhub · 36K subscribers
Post #2428 5.74K
SQL-совет: сравнивайте `NULL` через `IS NOT DISTINCT FROM`

Обычное сравнение ломается на NULL:


SELECT NULL = NULL;
-- NULL


Поэтому условие:


WHERE old_value = new_value


не считает два NULL равными.

В PostgreSQL используйте:


WHERE old_value IS NOT DISTINCT FROM new_value


Оператор работает как безопасный аналог =:


1 IS NOT DISTINCT FROM 1 -- true
NULL IS NOT DISTINCT FROM NULL -- true
1 IS NOT DISTINCT FROM NULL -- false


Полезно при сравнении версий строк, поиске изменений и синхронизации таблиц:


SELECT *
FROM old_data o
JOIN new_data n USING (id)
WHERE o.email IS DISTINCT FROM n.email;


Запрос вернёт строки, где значение действительно изменилось, включая переходы NULL → значение и значение → NULL.
  • 👍 8
  • 🔥 8
  • ❤ 6
More from @sqlhub
  1. Sep 21, 2026🧩 Сложная SQL-задача: симуляция DNS-кеша Есть таблица запросов: CREATE TABLE dns_requests…
  2. Sep 18, 2026🔥 PostgreSQL 19 задерживается релиз может сдвинуться на несколько недель или даже месяцев…
  3. Sep 17, 2026Участвуй во всероссийском ИТ-чемпионате МТС True Tech Champ 2026 c призовой фондом 10 250…
  4. Sep 17, 2026📌 NY Post: Anthropic - это культ Профессор Вашингтонского университета Педро Домингос в и…
  5. Sep 16, 2026Post #2492
  6. Sep 16, 2026Стать специалистом по Data Science всего за 10 недель — это реально! Если давно смотрите в…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →