Может ли кто-нибудь мне помочь. У меня есть следующий запрос postgresql:НЕ ОТКАЗЫВАЕТСЯ от версии =
SELECT count(*) FROM trackPointsA
WHERE gid NOT IN (
SELECT a.gid
FROM trackPointsA a, trackPointsB b
WHERE a.the_geom = b.the_geom
AND b.datetime = a.time::timestamp with time zone
GROUP BY a.gid ORDER BY a.gid
)
Этот запрос возвращает 0, что является правильным. Однако, если я заменил b.datetime = a.time::timestamp with time zone
на b.datetime IS NOT DISTINCT FROM a.time::timestamp with time zone
, тогда он больше не дает 0. Почему это? Мне нужно использовать версию IS NOT DISTINCT FROM
, так как иногда я имею нулевые значения, которые хотят обрабатывать как разные значения.
Пожалуйста, помогите мне.
Ни одно из этих полей не равно нулю. Значит, должно работать то же самое? – robert
Попытайтесь идентифицировать оскорбительные строки, например. 'select * from ... где b.datetime не отличается от a.time :: timestamp с часовым поясом, а не ((b.datetime = a.time :: timestamp с часовым поясом) истинно)' –
@robert: комментарий _None из этих полей null_, кажется, противоречит вопросу _I иногда имеют нулевые значения –