Symbole wieloznaczne w danych

W danych można używać symboli wieloznacznych. Istnieją dwa symbole wieloznaczne: symbol gwiazdki, interpretowany jako wszystkie wartości pola, oraz symbol opcjonalny, interpretowany jako wszystkie pozostałe wartości pola.

Symbol gwiazdki

Symbol gwiazdki jest interpretowany jako wszystkie wymienione wartości tego pola, czyli wszystkie wartości podane w innych miejscach tabeli. Jego użycie w jednym z pól systemowych (USERID, PASSWORD, NTNAME lub SERIAL) w tabeli załadowanej w sekcji dostępu skryptu jest interpretowane jako wszystkie możliwe (nie tylko wymienione) wartości tego pola.

Symbol gwiazdki nie jest dozwolony w plikach informacyjnych. Nie można go też używać w polach klucza, czyli polach używanych do łączenia tabel.

Symbol gwiazdki nie jest domyślnie dostępny i wymaga jawnego zdefiniowania. Informacje na temat stosowania w skrypcie instrukcji star można znaleźć w temacie Star.

OtherSymbol

Często potrzebny jest sposób reprezentowania wszystkich pozostałych wartości w tabeli, czyli wszystkich wartości, które nie zostały jawnie znalezione w załadowanych danych. Umożliwia to zmienna specjalna OtherSymbol. Do zdefiniowania wartości zmiennej OtherSymbol interpretowanej jako „wszystkie pozostałe wartości” należy użyć składni:

SET OTHERSYMBOL=<sym>;

przed instrukcją LOAD lub SELECT. <sym> może być dowolnym ciągiem.

Jeśli QlikView wykryje w tabeli wewnętrznej zdefiniowany w ten sposób symbol, będzie go interpretować jako wszystkie wartości, które nie zostały wcześniej załadowane w polu, w którym występuje symbol. Oznacza to, że wszystkie wartości pola występujące po wystąpieniu parametru OtherSymbol zostaną zignorowane.

Zresetowanie funkcji umożliwia instrukcja:

SET OTHERSYMBOL=;

Example:  

Table Customers

CustomerID Name
1 ABC Inc.
2 XYZ Inc.
3 ACME INC
+ Undefined

Table Orders

CustomerID Name
1 1234
3 1243
5 1248
7 1299

Przed miejscem załadowania w skrypcie pierwszej z powyższych tabel należy wstawić następującą instrukcję:

SET OTHERSYMBOL=+;

Odesłanie do wartości CustomerID inne niż 1, 2 lub 3, na przykład w przypadku kliknięcia wartości OrderID 1299, zwróci wartość Undefined w polu Name.

Uwaga: Parametr OtherSymbol nie służy do tworzenia sprzężenia zewnętrznego outer joins między tabelami.