IsNull - 指令碼與圖表函數
IsNull 函數會檢測運算式的值是否為 NULL,如果是的話,會傳回 -1 (True),否則會傳回 0 (False)。
語法:
IsNull(expr )
傳回的資料類型: 布林
引數 | 描述 |
---|---|
expr | 包含待測量之資料的運算式或欄位。 |
範例 | 結果 |
---|---|
IsNull(Productname) |
如果 ProductName 為 Null 值,則傳回 -1 (True),否則傳回 0 (False)。 |
範例 - IsNull 基礎事項
概述
開啟資料載入編輯器並將下面的載入指令碼新增至新的索引標籤。
載入指令碼包含:
-
載入到稱為 Example 之資料表格的資料集。
-
資料表格中的欄位如下:
-
ID
-
Value
-
載入指令碼
Example:
LOAD * Inline
[ID, Value
0,
1,NULL
2,-
3,378];
結果
載入資料並開啟工作表。建立新的表格並將這些欄位新增為維度:
-
ID
-
Value
建立下列計算維度:
-
=If(len(trim(Value))= 0 or Value='NULL' or Value='-', Null(), Value ),如果 Value 欄位沒有值、破折號 (-) 字元或值 NULL,則傳回 NULL,否則傳回該值。
-
=If(IsNull(If(len(trim(Value))= 0 or Value='NULL' or Value='-', Null(), Value )), 'T', 'F'),用來根據 Value 欄位是否包含 Null 值,傳回值 T (True) 或 F (False)。
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 |
Value 欄顯示資料集中輸入的資料。第一個量值 (第 3 欄) 對前 3 列傳回 NULL,前 3 列的值滿足 IF 陳述式的條件:len(trim(Value))= 0 or Value='NULL' or Value='-'。最後一列傳回輸入的值 378。
第二個量值 (第 4 欄) 採用第 3 欄中運算式的值,並傳回 T (如果是 NULL) 或 F (如果不是 NULL)。結果顯示,前 3 列都是 Null 值。
在此範例中,會載入含有四列的內嵌表格,其中前三行不包含任何內容,或是在 Value 欄中包含破折號 - 或文字 NULL。我們使用 Null 函數,將這些值轉換為具有中間前置 LOAD 的真正NULL 值表示法。
第一個前置 LOAD 新增一個欄位,使用 IsNull 函數檢查值是否為 NULL。
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];
以下是產生的表格。在 ValueNullConv 資料列中,NULL 值由 - 代表。
ID | Value | ValueNullConv |
IsItNull |
---|---|---|---|
0 | - | T | |
1 | NULL | - | T |
2 | - | - | T |
3 | 378 | 378 | F |
範例 - IsNull 使用情境
概述
分析銷售資料集以查看哪些欄位具有 Null 值。
開啟資料載入編輯器並將下面的載入指令碼新增至新的索引標籤。
載入指令碼包含:
-
載入到稱為 Example 之資料表格的資料集。
-
NULLINTERPRET 變數設定為 NULL。
-
資料表格中的欄位如下:
-
SalesID
-
Name
-
Age
-
Email
-
Region
-
Status
-
載入指令碼
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
];
結果
載入資料並開啟工作表。建立新的表格並將這些欄位新增為維度:
-
SalesID
-
Name
建立下列計算維度:
-
=If(IsNull(Age), 'Age unavailable', Age),如果是 NULL,則用值 Age unavailable 填入 Age 欄位。
-
=If(IsNull(Email), 'Email unavailable', Email),如果是 NULL,則用值 Email unavailable 填入 Email 欄位。
-
=If(IsNull(Region), 'Region unavailable', Region),如果是 NULL,則用值 Region unavailable 填入 Region 欄位。
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 |
IsNull 函數的結果是檢查是否為 Null 值,如果是則傳回 true,表示資料集中的多個欄位包含 Null 值。例如,在 Charlie Lee 的 Age 欄中識別了 Null 值,並傳回輸出 Age unavailable。