IsNull - script- en diagramfunctie
De functie IsNull test of de waarde van een uitdrukking NULL is. Als dit het geval is, wordt -1 (True) geretourneerd, anders 0 (False).
Syntaxis:
IsNull(expr )
Retourgegevenstypen: Booleaanse waarde
Argument | Beschrijving |
---|---|
expr | De uitdrukking die of het veld dat de gegevens bevat die moeten worden gemeten. |
Voorbeeld | Resultaat |
---|---|
IsNull(Productname) |
Retourneert -1 (True) als ProductName een nullwaarde is, anders 0 (False). |
Voorbeeld - Basisprincipes voor IsNull
Overzicht
Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuw tabblad.
Het load-script bevat:
-
Een gegevensverzameling die wordt geladen in een tabel met de naam Example.
-
De volgende velden in de gegevenstabel:
-
ID
-
Value
-
Load-script
Example:
LOAD * Inline
[ID, Value
0,
1,NULL
2,-
3,378];
Resultaten
Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:
-
ID
-
Value
Maak de volgende berekende dimensies:
-
=If(len(trim(Value))= 0 or Value='NULL' or Value='-', Null(), Value ), om NULL te retourneren als het veld Value geen waarde, een streepje (-) of de waarde NULL heeft, anders wordt de waarde geretourneerd.
-
=If(IsNull(If(len(trim(Value))= 0 or Value='NULL' or Value='-', Null(), Value )), 'T', 'F'), om de waarde T (True) of F (False) te retourneren, afhankelijk van of het veld Value een nullwaarde bevat of niet.
ID | Value | If(len(trim(Value))= 0 or Value='NULL' or Value='-', Null(), Value ) | If(IsNull(If(len(trim(Value))= 0 or Value='NULL' or Value='-', Null(), Value )), 'T', 'F') |
---|---|---|---|
0 | - | T | |
1 | NULL | - | T |
2 | - | - | T |
3 | 378 | 378 | F |
De kolom Value toont de gegevens zoals ze in de gegevensverzameling zijn ingevoerd. De eerste meting (kolom 3) retourneert NULL voor de eerste 3 rijen waarvan de waarde voldeed aan de voorwaarden van de IF-instructie: len(trim(Value))= 0 or Value='NULL' or Value='-'. De laatste rij geeft de ingevoerde waarde weer, 378.
De tweede meting (kolom 4) neemt de waarde van de uitdrukking in kolom 3 en geeft T als NULL of F als niet NULL is. De resultaten laten zien dat de eerste 3 rijen nullwaarden zijn.
In dit voorbeeld wordt een inline-tabel geladen met vier rijen, waarbij de eerste drie rijen niets, een streepje - of de tekst NULL in de kolom Value bevatten. Wij converteren deze waarde naar echte NULL-waarderepresentaties met de middelste voorafgaande LOAD via de functie Null.
Met de eerste voorafgaande LOAD wordt een veld toegevoegd dat controleert of de waarde NULL is, met behulp van de functie IsNull.
NullsDetectedAndConverted:
LOAD *,
If(IsNull(ValueNullConv), 'T', 'F') as IsItNull;
LOAD *,
If(len(trim(Value))= 0 or Value='NULL' or Value='-', Null(), Value ) as ValueNullConv;
LOAD * Inline
[ID, Value
0,
1,NULL
2,-
3, 378];
Hieronder ziet u de resulterende tabel. In de kolom ValueNullConv worden de NULL-waarden vertegenwoordigd door -.
ID | Value | ValueNullConv |
IsItNull |
---|---|---|---|
0 | - | T | |
1 | NULL | - | T |
2 | - | - | T |
3 | 378 | 378 | F |
Voorbeeld – Scenario met IsNull
Overzicht
Een gegevensverzameling met verkoopgegevens wordt geanalyseerd om te zien welke velden null-waarden hebben.
Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuw tabblad.
Het load-script bevat:
-
Een gegevensverzameling die wordt geladen in een tabel met de naam Example.
-
Een NULLINTERPRET variabele ingesteld op NULL.
-
De volgende velden in de gegevenstabel:
-
SalesID
-
Name
-
Age
-
Email
-
Region
-
Status
-
Load-script
Set NULLINTERPRET = NULL;
Example:
LOAD * Inline [
SalesID, Name, Age, Email, Region, Status
1, John Smith, 30, john@email.com, North, Active
2, Jane Doe, NULL, jane@email.com, South, Active
3, Bob Johnson, 45, NULL, East, Inactive
4, Alice Brown, 28, alice@email.com, West, Active
5, Charlie Lee, NULL, charlie@email.com, NULL, Active
6, Eva Green, 35, eva@email.com, North, NULL
7, David White, 50, NULL, South, Inactive
8, Fiona Black, 42, fiona@email.com, East, Active
];
Resultaten
Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:
-
SalesID
-
Name
Maak de volgende berekende dimensies:
-
=If(IsNull(Age), 'Age unavailable', Age), om het veld Age te vullen met de waarde Age unavailable als het NULL is.
-
=If(IsNull(Email), 'Email unavailable', Email), om het veld Email te vullen met de waarde Email unavailable als het NULL is.
-
=If(IsNull(Region), 'Region unavailable', Region), om het veld Region te vullen met de waarde Region unavailable als het NULL is.
SalesID | Name | If(IsNull(Age), 'Age unavailable', Age | If(IsNull(Email), 'Email unavailable', Email) | If(IsNull(Region), 'Region unavailable', Region) |
---|---|---|---|---|
1 | John Smith | 30 | john@email.com | North |
2 | Jane Doe | Age unavailable | jane@email.com | South |
3 | Bob Johnson | 45 | Email unavailable | East |
4 | Alice Brown | 28 | alice@email.com | West |
5 | Charlie Lee | Age unavailable | charlie@email.com | Region unavailable |
6 | Eva Green | 35 | eva@email.com | North |
7 | David White | 50 | Email unavailable | South |
8 | Fiona Black | 42 | fiona@email.com | East |
De resultaten van de functie IsNull, die op null-waarden controleert en true teruggeeft als er null-waarden worden gevonden, geven aan dat verschillende velden in de gegevensverzameling null-waarden bevatten. Er werd bijvoorbeeld een null-waarde geïdentificeerd in de kolom Age voor Charlie Lee, en de uitvoer Age unavailable werd geretourneerd.