# 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 &lt;&gt; NULL returnerar True (-1)
* A &lt; NULL returnerar False (0)
* A &lt;= NULL returnerar False (0)
* A = NULL returnerar False (0)
* A &gt;= returnerar False (0)
* A &gt; NULL returnerar False (0)