@xxxfdd

Как сделать чтобы None равнялось любому значению?

У меня есть скрипт который сравнивает две таблицы и выводить значения если в двух таблицых значения совподают, но у меня бывает такое что столбец иногда бывает None и как сделать что если нон то пропускаем
вот сам скрипт

SELECT * FROM woman t1, a688093622 t2
WHERE t1.age = t2.age
AND t1.growth = t2.growth
AND t1.hair = t2.hair
AND t1.size = t2.size
AND t1.weight = t2.weight
  • Вопрос задан
  • 83 просмотра
Пригласить эксперта
Ответы на вопрос 1
phoinixrw
@phoinixrw
Архитектор информационных систем
Во-первых, не None, а NULL

В принципе сравнение полей которые могут быть NULL лучше осуществлять так:

t1.field IS NOT DISTINCT FROM t2.field

Или так, но дольше:

COALESCE(t1.field, '') = COALESCE(t2.field, '')

В Вашем же случае, если вы хотите исключить строки, если где-то есть NULL, то можно использовать свойство NULL (когда все что взаимодействует с NULL становится NULL)

SELECT 
...
AND ( t1.age || t1.growth || t1.hair || t1.size || t1.weight ) IS NOT NULL
AND ( t2.age || t2.growth || t2.hair || t2.size || t2.weight ) IS NOT NULL
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы