PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Защо PostgreSQL счита NULL границите в типовете диапазони за различни от безкрайните граници?

Но те не го правят. NULL е синтактично удобство когато се използва като граница на диапазон, докато -infinity / infinity са действителни стойности в областта на диапазона. Абстрактни стойности, означаващи по-малки/по-големи от всяка друга стойност, но стойности въпреки това (които могат да бъдат включени или изключени).

Освен това, NULL работи за всеки тип диапазон, докато повечето типове данни нямат специални стойности като -infinity / infinity . Вземете integer и int4range например.

За по-добро разбиране разгледайте нишката в pgsql-general, която предоставен кон :

Всеки типът данни може да бъде NULL , дори домейни, които изрично са NOT NULL . Вижте:

Това включва date , разбира се (като Адриан коментира ):

test=> SELECT NULL::date, pg_typeof(NULL::date);
 date | pg_typeof 
------+-----------
      | date
(1 row)

Но се опитвам да обсъдя NULL като стойност (когато се използва като граница на диапазон) е подвеждащ подход като начало. Това не е стойност.

Отново NULL не се третира като стойност в домейна на диапазона. Той просто служи като удобен синтаксис да се каже:"неограничен". Не повече от това.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да сменя собственика на PostgreSql база данни?

  2. Функция за задействане на Postgres

  3. postgresql последователност nextval в схемата

  4. Използване на jsonb_set() за актуализиране на конкретна стойност на jsonb масив

  5. Може ли NLTK да се използва в съхранена процедура на Postgres Python