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.