Международная конференция QlikWorld 2020. Присоединяйтесь к нам, чтобы узнать, как получить максимальную пользу от ваших данных. Действуйте быстро. Зарегистрируйтесь сейчас и сэкономьте.

Обработка значения NULL

Если в результате запроса и/или объединения таблиц в базе данных для определенного поля отсутствуют данные, то такой результат, как правило, получает значение NULL.

Обзор

В рамках логики Qlik Sense как действительные значения NULL обрабатываются следующие значения:

  • Значения NULL, возвращаемые из соединения ODBC.

  • Значения NULL, созданные в результате принудительного объединения таблиц в скрипте загрузки данных.

  • Значения NULL, созданные в результате объединения в скрипте загрузки данных.

  • Значения NULL, созданные в результате создания комбинаций значений полей для отображения в таблице.

Примечание: Эти значения NULL нельзя использовать для ассоциаций и выборок, кроме случаев использования оператора NullAsValue.

Для получения дополнительной информации о NullAsValue см. NullAsValue.

Текстовые файлы по определению не могут содержать значений NULL.

Связь/выбор значений NULL из ODBC

В источнике данных ODBC можно связать и/или выбрать значения NULL. Для этого определяется переменная скрипта. Может использоваться следующий синтаксис:

SET NULLDISPLAY=<sym>;

Символ <sym> заменит все значения NULL в источнике данных ODBC на самом низшем уровне ввода данных. Символ <sym> может быть любой строкой.

Для возврата к установкам интерпретации по умолчанию данной функции используйте следующий синтаксис:

SET NULLDISPLAY=;

Примечание: При использовании NULLDISPLAY затронуты будут только данные из источника данных ODBC.

Если необходимо использовать логику программы Qlik Sense для интерпретации значений NULL, возвращаемых из подключения ODBC в виде пустой строки, добавьте следующее выражение в скрипт перед оператором SELECT:

SET NULLDISPLAY=";

Примечание: Здесь символ '' задается двумя отдельными апострофами без каких-либо промежуточных символов.

Для получения дополнительной информации о NullDisplay см. NullDisplay .

Создание значений NULL на основе текстовых файлов

Можно задать символ, который будет интерпретироваться в текстовом файле или в выражении inline как значение NULL. Используйте следующий оператор:

SET NULLINTERPRET=<sym>;

Символ <sym> интерпретируется как NULL. Символ <sym> может быть любой строкой.

Для возврата к установкам интерпретации по умолчанию данной функции задайте:

SET NULLINTERPRET=;

Примечание: При использовании NULLINTERPRET будут затронуты только данные из текстовых файлов и выражений inline.

Для получения дополнительной информации о NullInterpret см. NullInterpret .

Передача значений NULL в выражения

Значения NULL передаются посредством выражения в соответствии с некоторыми логическими и весьма обоснованными правилами.

Функции

Общее правило заключается в том, что функции возвращают значение NULL, когда параметры выходят за пределы диапазона, для которого задана функция.

Примеры
Выражение Результат
asin(2) возвращает NULL
log(-5) возвращает NULL
round(A,0) возвращаетNULL

В результате приведенных выше примеров функции, как правило, возвращают значение NULL, когда любой из требуемых для оценки параметров равен NULL.

Примеры
Выражение Результат
sin(NULL) возвращает NULL
chr(NULL) возвращает NULL
if(NULL, A, B) возвращает B
if(True, NULL, A) возвращает NULL
if(True, A, NULL) возвращаетA

Исключением второго правила являются логические функции для проверки типа.

Примеры
Выражение Результат
isnull(NULL) возвращает True (-1)
isnum(NULL) возвращаетFalse (0)

Арифметические и строковые операторы

Если значение NULL используется с любой стороны этих операторов, то возвращается значение NULL.

Примеры
Выражение Результат
A + NULL возвращаетNULL
A - NULL возвращаетNULL
A / NULL возвращаетNULL
A * NULL возвращаетNULL
NULL / A возвращаетNULL
0 / NULL возвращаетNULL
0 * NULL возвращаетNULL
A & NULL возвращает A

Реляционные операторы

Если значение NULL используется с любой стороны реляционных операторов, то действуют особые правила.

Примеры
Выражение Результат
NULL (любой реляционный оператор) NULL возвращаетNULL
A <> NULL возвращаетTrue (-1)
A < NULL возвращаетFalse (0)
A <= NULL возвращаетFalse (0)
A = NULL возвращаетFalse (0)
A >= NULL возвращаетFalse (0)
A > NULL возвращает False (0)