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.
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:
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=;
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=";
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:
Symbolen <sym> ska tolkas som NULL. <sym> kan vara valfri sträng.
För att återgå till den ursprungliga tolkningen, använd:
SET NULLINTERPRET=;
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.
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.
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.
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.
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.
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) |