IsNull  — функция скриптa и диаграммы
                Функция IsNull проверяет, является ли значение выражения NULL. Если да, то функция возвращает -1 (True), в противном случае — 0 (False).
Синтаксис:
IsNull(expr )
Возвращаемые типы данных: Булево значение
| Аргумент | Описание | 
|---|---|
| expr | Выражение или поле, содержащее данные для измерения. | 
| Пример | Результат | 
|---|---|
| 
                                 IsNull(Productname)  | 
                            Возвращает -1 (True), если ProductName имеет нулевое значение, иначе 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 ), чтобы вернуть NULL, если поле Value не содержит значения, содержит символ тире (-) или значение NULL, или в противном случае вернуть значение.
 - 
                                    
=If(IsNull(If(len(trim(Value))= 0 or Value='NULL' or Value='-', Null(), Value )), 'T', 'F'), чтобы вернуть значение T (True) или F (False) в зависимости от того, содержит поле Value нулевое значение или нет.
 
| 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) возвращает NULL для первых трех строк, значение которых удовлетворяет условиям оператора IF: len(trim(Value))= 0 or Value='NULL' or Value='-'. Последняя строка возвращает введенное значение, 378.
Вторая мера (столбец 4) принимает значение выражения в столбце 3 и возвращает T, если NULL, или F, если не NULL. Результаты показывают, что первые три строки содержат нулевые значения.
В этом примере загружена встроенная таблица с четырьмя строками, где первые три строки не содержат ничего, содержат - или значение NULL в столбце Value. Мы преобразуем эти значения в представления значения true NULL с предшествующим в середине оператором LOAD с помощью функции Null.
Первый предшествующий оператор LOAD добавляет поле, которое проверяет, является ли значение NULL, с помощью функции 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];Ниже приводится результирующая таблица. В столбце ValueNullConv значения NULL представлены элементом -.
| ID | Value | ValueNullConv | 
                                             IsItNull  | 
                                    
|---|---|---|---|
| 0 | - | T | |
| 1 | NULL | - | T | 
| 2 | - | - | T | 
| 3 | 378 | 378 | F | 
Пример. Сценарий использования функции IsNull
Обзор
Набор данных о продажах анализируется с целью идентификации полей, которые имеют нулевые значения.
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки в новый раздел.
Скрипт загрузки содержит следующее:
- 
                                    
Набор данных, который загружается в таблицу данных под именем 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), чтобы заполнить поле Age значением Age unavailable, если оно NULL.
 - 
                                    
=If(IsNull(Email), 'Email unavailable', Email), чтобы заполнить поле Email значением Email unavailable, если оно NULL.
 - 
                                    
=If(IsNull(Region), 'Region unavailable', Region), чтобы заполнить поле Region значением Region unavailable, если оно 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 | 
Результаты выполнения функции IsNull, которая проверяет наличие нулевых значений и возвращает true в случае их обнаружения, показывают, что несколько полей в наборе данных содержат нулевые значения. Например, в столбце Age для Charlie Lee идентифицировано нулевое значение, и возвращен результат Age unavailable.