SQLсервер в Linux -самостоятельное освоение пакета

         

Сравнение со значением NULL



Листинг 5.16. Сравнение со значением NULL

booktown=# SELECT lastjiame, firstjiame

booktown-l FROM authors

booktown-f WHERE firstjiame = NULL:

lastjiame | fi rstjname

Geisel |

(1 row)

В PostgreSQL условие = NULL преобразуется в IS NULL, а условие != NULL преобразуется в IS NOT NULL. Это сделано только для совместимости с существующими клиентскими приложениями (например, Microsoft Access).

Тем не менее при сравнении значений с NULL вместо математических операторов = и != рекомендуется использовать конструкции IS NULL и NOT IS NULL. В настоящее время использование математических операторов = и != для сравнения со псевдозначениями NULL допускается ради совместимости с другими системами, но в будущем эта поддержка может быть ликвидирована, поскольку она не предусмотрена в стандарте SQL. По той же причине она не гарантирована в других СУБД на базе SQL.

Все остальные операторы сравнения для операнда NULL возвращают NULL, поскольку NULL никогда не бывает больше или меньше другой величины, отличной от NULL (листинг 5.17). NULL можно рассматривать как своего рода «черную дыру» в мире SQL — для этого псевдозначения ни один оператор сравнения (кроме IS NULL и специального оператора преобразования =) не возвращает true; NULL не может участвовать в операциях сложения, конкатенации и т. д.



Содержание раздела