Przeskocz do zawartości głównej

Propagacja wartości NULL w wyrażeniach

NA TEJ STRONIE

Propagacja wartości NULL w wyrażeniach

Wartości NULL są propagowane w wyrażeniach według kilku reguł logicznych zgodnych z intuicją.

Funkcje

Ogólna zasada jest taka, że funkcje zwracają wartość NULL, jeśli ich parametry wykraczają poza zakres zdefiniowanych wartości działania funkcji.

Example:  

  • asin(2) zwraca NULL
  • log(-5) zwraca NULL
  • round(A,0) zwraca NULL

Z powyższej reguły wynika, że funkcje zazwyczaj zwracają wartość NULL, jeśli dowolny z parametrów niezbędnych do obliczenia wartości jest równy NULL.

Example:  

  • sin(NULL) zwraca NULL
  • chr(NULL) zwraca NULL
  • if(NULL, A, B) zwraca B
  • if(True, NULL, A) zwraca NULL
  • if(True, A, NULL) zwraca A

Wyjątkiem od tej drugiej reguły są funkcje logiczne sprawdzające typ.

Example:  

  • isnull(NULL) zwraca True (-1)
  • isnum(NULL) zwraca False (0)

Operatory arytmetyczne i działające na ciągach znaków

Jeśli po dowolnej stronie tych operatorów napotykana jest wartość NULL, zwracana jest wartość NULL.

Example:  

  • A + NULL zwraca NULL
  • A - NULL zwraca NULL
  • A / NULL zwraca NULL
  • A * NULL zwraca NULL
  • NULL / A zwraca NULL
  • 0 / NULL zwraca NULL
  • 0 * NULL zwraca NULL
  • A & NULL zwraca A

Operatory relacyjne

Obsługa wartości NULL po dowolnej stronie operatorów relacyjnych podlega specjalnym zasadom.

Example:  

  • NULL rel.op NULL zwraca NULL
  • A <> NULL zwraca True (-1)
  • A < NULL zwraca False (0)
  • A <= NULL zwraca False (0
  • A = NULL zwraca False (0
  • A >= zwraca False (0
  • A > NULL zwraca False (0