Hur NULL-värden slår igenom i uttryck
NULL-värden slår igenom i uttryck enligt några logiska och ganska rimliga regler.
Funktioner
Som allmän regel gäller att funktioner returnerar NULL när parametrarna faller utanför den ram för vilken funktionen är definierad.
Exempel:
- asin(2) returnerar NULL
- log(-5) returnerar NULL
- round(A,0) returnerar NULL
Av ovanstående följer att funktioner vanligen returnerar NULL när någon av de parametrar som behövs för utvärderingen är NULL.
Exempel:
- sin(NULL) returnerar NULL
- chr(NULL) returnerar NULL
- if(NULL, A, B) returnerar B
- if(True, NULL, A) returnerar NULL
- if(True, A, NULL) returnerar A
Undantag till den andra regeln är logiska funktioner som testar typ.
Exempel:
- isnull(NULL) returnerar True (-1)
- isnum(NULL) returnerar False (0)
Aritmetiska operatorer och strängoperatorer
Om NULL påträffas på någon sida om dessa operatorer returneras NULL.
Exempel:
- A + NULL returnerar NULL
- A - NULL returnerar NULL
- A / NULL returnerar NULL
- A * NULL returnerar NULL
- NULL / A returnerar NULL
- 0 / NULL returnerar NULL
- 0 * NULL returnerar NULL
- A & NULL returnerar A
Relationsoperatorer
Om NULL påträffas på någon sida om relationsoperatorer gäller särskilda regler.
Exempel:
- NULL rel.op NULL returnerar NULL
- A <> NULL returnerar True (-1)
- A < NULL returnerar False (0)
- A <= NULL returnerar False (0)
- A = NULL returnerar False (0)
- A >= returnerar False (0)
- A > NULL returnerar False (0)