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.

Observera: Vanligtvis ä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.

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:

SET NULLDISPLAY=<sym>;

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

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

SET NULLDISPLAY=;

Observera: NULLDISPLAY 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=";

Observera: Här består '' i själva verket av två enkla citattecken utan mellanslag.

Mer information om NullDisplay finns här NullDisplay .

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:

SET NULLINTERPRET=<sym>;

Symbolen <sym> ska tolkas som NULL. <sym> kan vara valfri sträng.

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

SET NULLINTERPRET=;

Observera: Användning av NULLINTERPRET påverkar endast data från textfiler och inline-satser.

Mer information om NullInterpret finns här NullInterpret .

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