PostgreSQL обрабатывает специальные числовые значения, такие как NaN, следующим образом:
- NaN используется для представления неопределённых результатов вычислений. 1 Любая операция с NaN выдаёт в результате тоже NaN. 1 Исключение составляют операции, которые дают один и тот же результат для любого числового значения, конечного или бесконечного — этот результат будет выдаваться и для NaN. 1
- Два значения NaN считаются равными, при этом NaN больше любых числовых значений (не NaN). 13 Такая обработка позволяет сортировать значения numeric и использовать их в древовидных индексах. 13
Это поведение связано с тем, что в большинстве реализаций NaN не считается равным любому другому числовому значению, в том числе и самому NaN. 12