# NULL-värdeshantering

Om inga data kan produceras för ett visst fält till följd av en databasfråga och/eller länkningar mellan tabeller, resulterar detta vanligen ett NULL-värde.



## Översikt

Logiken i Qlik Sense behandlar följande som äkta NULL-värden:

* NULL-värden som returneras från en ODBC-anslutning.

* NULL-värden som skapas till följd av en tvingad konkatenering av tabeller i dataladdningsskriptet.

* NULL-värden som skapas till följd av en länkning i dataladdningsskriptet

* NULL-värden som skapas till följd av en generering av fältvärdeskombinationer som ska visas i en tabell.

Anteckning om informationVanligtvis är det omöjligt att använda dessa NULL-värden för associationer och urval, förutom när satsen NullAsValue används.

Mer information om NullAsValue finns här [NullAsValue](https://help.qlik.com/sv-SE/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/NullAsValue.htm).

Textfiler kan per definition inte innehålla NULL-värden.

## Associera/välja NULL-värden från ODBC

Det går att associera och/eller välja NULL-värden från en ODBC-datakälla. En skriptvariabel har definierats för detta ändamål. Följande syntax kan användas:

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/null-value-handling.htm)SET NULLDISPLAY=&lt;sym&gt;;

Symbolen &lt;sym&gt; kommer att ersätta alla NULL-värden från ODBC-datakällan på den lägsta indatanivån. &lt;sym&gt; kan vara valfri sträng.

För att återgå till den ursprungliga tolkningen, använd följande syntax:

SET NULLDISPLAY=;

Anteckning om informationNULLDISPLAY påverkar bara data från en ODBC-datakälla.

Om du vill att Qlik Sense-logiken ska tolka NULL-värden som returneras från en ODBC-koppling som tomma strängar lägger du till följande syntax i skriptet framför en SELECT-sats:

SET NULLDISPLAY=";

Anteckning om informationHär består '' i själva verket av två enkla citattecken utan mellanslag.

Mer information om NullDisplay finns här [NullDisplay](https://help.qlik.com/sv-SE/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ValueHandlingVariables/NullDisplay.htm).

## Skapa NULL-värden från textfiler

Det är möjligt att definiera en symbol, som tolkas som ett äkta NULL-värde varje gång den förekommer i en textfil eller en inline-sats. Använd följande sats:

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/null-value-handling.htm)SET NULLINTERPRET=&lt;sym&gt;;

Symbolen &lt;sym&gt; ska tolkas som NULL. &lt;sym&gt; kan vara valfri sträng.

För att återgå till den ursprungliga tolkningen, använd:

SET NULLINTERPRET=;

Anteckning om information Användning av NULLINTERPRET påverkar endast data från textfiler och inline-satser.

Mer information om NullInterpret finns här [NullInterpret](https://help.qlik.com/sv-SE/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ValueHandlingVariables/NullInterpret.htm).

## 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

| Uttryck | Resultat |
| --- | --- |
| 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

| Uttryck | Resultat |
| --- | --- |
| 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

| Uttryck | Resultat |
| --- | --- |
| 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

| Uttryck | Resultat |
| --- | --- |
| 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

| Uttryck | Resultat |
| --- | --- |
| NULL (valfri relationsoperator) 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;= NULL | returnerar False (0) |
| A &gt; NULL | returnerar False (0) |