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)

Hjälpte den här informationen?

Tack för att du berättar det här. Är det något du vill säga om det här avsnittet?

Varför var informationen inte till hjälp och hur kan vi förbättra den?