IsNull - skript- och diagramfunktion
Funktionen IsNull testar om värdet på ett uttryck är NULL och om det är så, returnerar -1 (True), annars 0 (False).
Syntax:
IsNull(expr )
Returnerad datatyp: Boolesk
Argument | Beskrivning |
---|---|
expr | Det uttryck eller fält som innehåller de data som ska mätas. |
Exempel | Resultat |
---|---|
IsNull(Productname) |
Returnerar -1 (True) om ProductName är ett null-värde, annars 0 (False). |
Exempel – grunderna i IsNull
Översikt
Öppn skriptredigeraren och lägg till laddningsskriptet nedan till en ny flik.
Laddningsskriptet innehåller:
-
En datauppsättning som läses in i en datatabell som heter Example.
-
Följande fält i datatabellen:
-
ID
-
Value
-
Laddningsskript
Example:
LOAD * Inline
[ID, Value
0,
1,NULL
2,-
3,378];
Resultat
Ladda data och öppna ett ark. Skapa en ny tabell och lägg till dessa fält som dimensioner:
-
ID
-
Value
Skapa följande beräknade dimensioner:
-
=If(len(trim(Value))= 0 or Value='NULL' or Value='-', Null(), Value ), för att returnera NULL om fältet Value inte har något värde, ett streck (-) eller värdet NULL, annars returneras värdet.
-
=If(IsNull(If(len(trim(Value))= 0 or Value='NULL' or Value='-', Null(), Value )), 'T', 'F'), för att returnera värdet T (True) eller F (False) beroende på om fältet Value innehåller ett null-värde eller inte.
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 |
Kolumnen Value visar de data som har matats in i datauppsättningen. Den första åtgärden (kolumn 3) returnerar NULL för de första 3 raderna vars värde uppfyllde villkoren i IF-satsen: len(trim(Value))= 0 or Value='NULL' or Value='-'. Den sista raden visar det värde som angetts, 378.
Den andra åtgärden (kolumn 4) tar värdet av uttrycket i kolumn 3 och returnerar T om NULL eller F om inte NULL. Resultatet visar att de första 3 raderna är nollvärden.
I detta exempel laddas en inline-tabell med fyra rader, där de tre första raderna innehåller antingen ingenting, ett streck - eller texten NULL i kolumnen Value. Vi omvandlar dessa värden till sanna NULL-värdesåtergivningar med den mellersta som föregår LOAD med hjälp av Null-funktionen.
Första föregående LOAD lägger till ett fält som kontrollerar om värdet är NULL med hjälp av IsNull-funktionen.
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];
Nedan visas den resulterande tabellen. I kolumnen ValueNullConv representeras NULL-värdena av -.
ID | Value | ValueNullConv |
IsItNull |
---|---|---|---|
0 | - | T | |
1 | NULL | - | T |
2 | - | - | T |
3 | 378 | 378 | F |
Exempel – IsNull-scenario
Översikt
En datauppsättning med försäljningsdata analyseras för att se vilka fält som har nollvärden.
Öppn skriptredigeraren och lägg till laddningsskriptet nedan till en ny flik.
Laddningsskriptet innehåller:
-
En datauppsättning som läses in i en datatabell som heter Example.
-
En NULLINTERPRET-variabel som ställs in på NULL.
-
Följande fält i datatabellen:
-
SalesID
-
Name
-
Age
-
Email
-
Region
-
Status
-
Laddningsskript
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
];
Resultat
Ladda data och öppna ett ark. Skapa en ny tabell och lägg till dessa fält som dimensioner:
-
SalesID
-
Name
Skapa följande beräknade dimensioner:
-
=If(IsNull(Age), 'Age unavailable', Age), för att fylla i fältet Age med värdet Age unavailable om det är NULL.
-
=If(IsNull(Email), 'Email unavailable', Email), för att fylla i fältet Email med värdet Email unavailable om det är NULL.
-
=If(IsNull(Region), 'Region unavailable', Region), för att fylla i fältet Region med värdet Region unavailable om det är NULL.
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 |
Resultatet av funktionen IsNull, som söker efter och returnerar true om nollvärden hittas, visar att flera fält i datauppsättningen innehåller nollvärden. Till exempel identifierades ett nollvärde i kolumnen Age för Charlie Lee, och utdata Age unavailable returnerades.