Naposledy upraveno 9. 10. 2007 v 11:57

4.09 Jak v dotazu detekovat, že položka je NULL? Jak bezpečně spojit dva řetězce, pokud mohou obsahovat NULL? Lze třídit podle toho, jestli je položka NULL nebo ne?

Pokud chcete testovat hodnotu NULL použijte operátor IS:

   SELECT *
   FROM tab
   WHERE col IS NULL;

K spojení řetězců, které mohou obsahovat hodnotu NULL, používejte funkci COALESCE(), např.:

   SELECT COALESCE(col1, '') || COALESCE(col2, '')
   FROM tab

Pokud chcete třídit podle hodnoty NULL, použijte výraz IS NULL nebo IS NOT NULL v klauzuli ORDER. Hodnota pravda má přednost před hodnotou false a tedy pokud použijete:

   SELECT *
   FROM tab
   ORDER BY (col IS NOT NULL)

tak záznamy s NULL budou na začátku setříděných dat.