Obsługa wartości NULL
Jeśli w rezultacie zapytania w bazie danych lub połączenia między tabelami nie można wygenerować danych dla określonego pola, wynikiem jest z reguły wartość NULL.
Przegląd
Następujące wartości są w logice aplikacji Qlik Sense traktowane jako prawdziwe wartości NULL:
-
wartości NULL zwrócone z połączenia ODBC;
-
wartości NULL utworzone w wyniku wymuszonej konkatenacji tabel w skrypcie ładowania danych;
-
wartości NULL utworzone w wyniku sprzężenia wykonanego w skrypcie ładowania danych;
-
wartości NULL utworzone w wyniku wygenerowania kombinacji wartości pól na potrzeby wyświetlania w oknie tabeli.
Więcej informacji o NullAsValue zawiera temat NullAsValue.
Pliki tekstowe z definicji nie mogą zawierać wartości NULL.
Powiązanie/wybieranie wartości NULL z ODBC
Możliwe jest powiązywanie i wybieranie wartości NULL ze źródła danych ODBC. Zdefiniowano w tym celu zmienną skryptową. Można użyć następującej składni:
Symbol <sym> zastąpi wszystkie wartości NULL ze źródła danych ODBC na najniższym poziomie wprowadzania danych. <sym> może być dowolnym ciągiem.
W celu przywrócenia domyślnej interpretacji tej funkcji należy użyć następującej składni:
SET NULLDISPLAY=;
Jeśli logika aplikacji Qlik Sense ma interpretować wartości NULL zwracane z połączenia ODBC jako pusty ciąg znaków, umieść w skrypcie następującą instrukcję przed pierwszą instrukcją SELECT:
SET NULLDISPLAY=";
Więcej informacji o NullDisplay zawiera temat NullDisplay .
Tworzenie wartości NULL z plików tekstowych
Można zdefiniować symbol, którego wystąpienie w pliku tekstowym lub klauzuli inline będzie interpretowane jako rzeczywista wartość NULL. Użyj następującej instrukcji:
Symbol <sym> będzie interpretowany jako NULL. <sym> może być dowolnym ciągiem.
W celu przywrócenia domyślnej interpretacji tej funkcji użyj:
SET NULLINTERPRET=;
Więcej informacji o NullInterpret zawiera temat NullInterpret .
Propagacja wartości NULL w wyrażeniach
Wartości NULL są propagowane w wyrażeniach według kilku reguł logicznych zgodnych z intuicją.
Funkcje
Ogólna zasada jest taka, że funkcje zwracają wartość NULL, jeśli ich parametry wykraczają poza zakres zdefiniowanych wartości działania funkcji.
Wyrażenie | Wynik |
---|---|
asin(2) | zwraca wartość NULL |
log(-5) | zwraca wartość NULL |
round(A,0) | zwraca wartość NULL |
Z powyższej reguły wynika, że funkcje zazwyczaj zwracają wartość NULL, jeśli dowolny z parametrów niezbędnych do obliczenia wartości jest równy NULL.
Wyrażenie | Wynik |
---|---|
sin(NULL) | zwraca wartość NULL |
chr(NULL) | zwraca wartość NULL |
if(NULL, A, B) | zwraca wartość B |
if(True, NULL, A) | zwraca wartość NULL |
if(True, A, NULL) | zwraca wartość A |
Wyjątkiem od tej drugiej reguły są funkcje logiczne sprawdzające typ.
Wyrażenie | Wynik |
---|---|
isnull(NULL) | zwraca wartość True (-1) |
isnum(NULL) | zwraca wartość False (0) |
Operatory arytmetyczne i działające na ciągach znaków
Jeśli po dowolnej stronie tych operatorów napotykana jest wartość NULL, zwracana jest wartość NULL.
Wyrażenie | Wynik |
---|---|
A + NULL | zwraca wartość NULL |
A - NULL | zwraca wartość NULL |
A / NULL | zwraca wartość NULL |
A * NULL | zwraca wartość NULL |
NULL / A | zwraca wartość NULL |
0% NULL | zwraca wartość NULL |
0% NULL | zwraca wartość NULL |
A & NULL | zwraca A |
Operatory relacyjne
Obsługa wartości NULL po dowolnej stronie operatorów relacyjnych podlega specjalnym zasadom.
Wyrażenie | Wynik |
---|---|
NULL (dowolny operator relacyjny) NULL | zwraca wartość NULL |
A <> NULL | zwraca wartość True (-1) |
A < NULL | zwraca wartość False (0) |
A <= NULL | zwraca wartość False (0) |
A = NULL | zwraca wartość False (0) |
A >= NULL | zwraca wartość False (0) |
A > NULL | zwraca wartość False (0) |