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.

Example:  

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.

Example:  

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.

Example:  

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.

Example:  

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.

Example:  

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

>=

NULL

returnerar

False (0)

A

>

NULL

returnerar

False (0)