Afhandeling van NULL-waarden

Wanneer geen gegevens kunnen worden geproduceerd voor een bepaald veld als resultaat van een databasequery en/of een samenvoeging van tabellen met de opdracht join, is het resultaat meestal een NULL-waarde.

Overzicht

In de Qlik Sense-logica wordt het volgende als echte NULL-waarden behandeld:

  • NULL-waarden die door een ODBC-verbinding worden geretourneerd

  • NULL-waarden als resultaat van een gedwongen aaneenschakeling·van tabellen in het load-script voor gegevens

  • NULL-waarden als resultaat van een samenvoeging in het load-script voor gegevens

  • NULL-waarden als resultaat van het genereren van veldwaardecombinaties voor weergave in een tabel

Opmerking: In het algemeen kunnen deze NULL-waarden niet worden gebruikt voor associaties en selecties, behalve als de opdracht NullAsValue wordt gebruikt.

Zie NullAsValue voor meer informatie over NullAsValue.

Tekstbestanden kunnen per definitie geen NULL-waarden bevatten.

NULL-waarden uit ODBC koppelen/selecteren

U kunt NULL-waarden associëren met en/of selecteren uit een ODBC-gegevensbron. Voor dit doeleinde is een scriptvariabele gedefinieerd. De volgende syntaxis kan worden gebruikt:

SET NULLDISPLAY=<sym>;

Het symbool <sym> vervangt alle NULL-waarden uit de ODBC-gegevensbron op het laagste niveau van de gegevensinvoer. <sym> kan elke tekenreeks zijn.

U herstelt de standaardinterpretatie van deze functionaliteit met de volgende syntaxis:

SET NULLDISPLAY=;

Opmerking: Het gebruik van NULLDISPLAY heeft alleen betrekking op gegevens uit een ODBC-gegevensbron.

Als u wilt dat de Qlik Sense-logica NULL-waarden die worden geretourneerd uit een ODBC-verbinding interpreteert als een lege tekenreeks, voegt u in uw script het volgende toe vóór een SELECT-opdracht:

SET NULLDISPLAY=";

Opmerking: Hier staat '' voor twee enkele aanhalingstekens zonder dat daar iets tussen staat.

ZieNullDisplay voor meer informatie over NullDisplay.

NULL-waarden creëren uit tekstbestanden

Het is mogelijk een symbool te definiëren dat wordt geïnterpreteerd als een reële NULL-waarde als het voorkomt in een tekstbestand of een inline-clausule. Gebruik de volgende opdracht:

SET NULLINTERPRET=<sym>;

Het symbool <sym> moet worden geïnterpreteerd als NULL. <sym> kan elke tekenreeks zijn.

U herstelt de standaardinterpretatie van deze functionaliteit als volgt:

SET NULLINTERPRET=;

Opmerking: Het gebruik van NULLINTERPRET heeft alleen invloed op gegevens uit tekstbestanden en inline-clausules.

Zie NullInterpret voor meer informatie over NullInterpret.

NULL-waarden in uitdrukkingen

NULL-waarden worden in een uitdrukking doorgegeven volgens een aantal logische regels.

Functies

De algemene regel is dat een functie NULL retourneert als de parameters buiten het gedefinieerde bereik van een functie vallen.

Voorbeelden
Uitdrukking Resultaat
asin(2) retourneert NULL
log(-5) retourneert NULL
round(A,0) retourneert NULL

Als gevolg van het bovenstaande retourneert een functie in het algemeen NULL wanneer een willekeurige parameter in de uitdrukking NULL is.

Voorbeelden
Uitdrukking Resultaat
sin(NULL) retourneert NULL
chr(NULL) retourneert NULL
if(NULL, A, B) retourneert B
if(True, NULL, A) retourneert NULL
if(True, A, NULL) retourneert A

Uitzonderingen op de tweede regel zijn logische functies die een bepaald type testen.

Voorbeelden
Uitdrukking Resultaat
isnull(NULL) retourneert True (-1)
isnum(NULL) retourneert False (0)

Rekenkundige operatoren en tekenreeksoperatoren

Als NULL wordt aangetroffen aan een van de kanten van deze operatoren wordt NULL geretourneerd.

Voorbeelden
Uitdrukking Resultaat
A + NULL retourneert NULL
A - NULL retourneert NULL
A / NULL retourneert NULL
A * NULL retourneert NULL
NULL / A retourneert NULL
0% NULL retourneert NULL
0% NULL retourneert NULL
A & NULL retourneert A

Relationele operatoren

Als NULL wordt aangetroffen aan een van de kanten van een relationele operator, zijn er speciale regels van toepassing.

Voorbeelden
Uitdrukking Resultaat
NULL (elke relationele operator) NULL retourneert NULL
A <> NULL retourneert True (-1)
A < NULL retourneert False (0)
A <= NULL retourneert False (0)
A = NULL retourneert False (0)
A >= NULL retourneert False (0)
A > NULL retourneert False (0)