Przeskocz do zawartości głównej

SubField — funkcja skryptu i funkcja wykresu

Funkcja Subfield() służy do wyodrębniania składników fragmentu tekstu z nadrzędnego pola ciągu znaków, gdy pierwotne pola rekordów składają się z co najmniej dwóch części rozdzielonych ogranicznikiem.

Funkcja Subfield() może być używana na przykład do wyodrębniania imienia i nazwiska z listy rekordów składających się z nazwisk, elementów nazwy ścieżki, lub wyodrębniania danych z tabel rozdzielanych przecinkami.

W przypadku korzystania z funkcji Subfield() w instrukcji LOAD z pozostawionym opcjonalnym parametrem field_no, dla każdego ciągu podrzędnego zostanie wygenerowany jeden pełny rekord. Jeśli przy użyciu funkcji Subfield() załadowano kilka pól, wówczas zostanie wygenerowany iloczyn kartezjański wszystkich kombinacji.

Składnia:  

SubField(text, delimiter[, field_no ])

Typ zwracanych danych: ciąg znaków

Argumenty:  

Argumenty SubField
Argument Opis
text Pierwotny ciąg znaków. Może to być tekst ustalony, zmienna, rozszerzenie przez znak dolara lub inne wyrażenie.
delimiter Znak w tekście wejściowym text, który dzieli ciąg znaków na elementy.
field_no

Opcjonalny trzeci argument jest liczbą całkowitą, określającą, które z ciągów podrzędnych tekstu nadrzędnego text ciągu znaków mają zostać zwrócone.

  • Jeśli field_no jest wartością dodatnią, wówczas fragmenty tekstu są wyodrębniane od strony lewej do prawej.
  • Jeśli field_no jest wartością ujemną, wówczas fragmenty tekstu są wyodrębniane od strony prawej do lewej.
Wskazówka Funkcja SubField() może być stosowana zamiast złożonych kombinacji funkcji, takich jak Len(), Right(), Left(), Mid() i inne funkcje ciągów znaków.

Przykłady i wyniki:  

Przykłady 1–3
Przykład Wynik
SubField('abc;cde;efg', ';', 2) Zwraca wartość 'cde'
SubField('', ';', 1) Zwraca wartość NULL
SubField(';', ';', 1) Zwraca pusty ciąg znaków.

Dodaj przykładowy skrypt do dokumentu i uruchom go. Następnie dodaj do arkusza w swoim dokumencie co najmniej pola wyszczególnione w kolumnie wyników, aby wyświetlić wynik.

FullName:

LOAD * inline [

Name

'Dave Owen'

'Joe Tem'

];

 

SepNames:

Load Name,

SubField(Name, ' ',1) as FirstName,

SubField(Name, ' ',-1) as Surname

Resident FullName;

Drop Table FullName;

Przykład 4
Name FirstName Surname
Dave Owen Dave Owen
Joe Tem Joe Tem

Załóżmy, że masz zmienną, która przechowuje nazwę ścieżki vMyPath,

Set vMyPath=\Users\ext_jrb\Documents\Qlik\Sense\Apps;.

W wykresie z tekstem i grafiką można dodać miarę, taką jak:
SubField(vMyPath, '\',-3), czego wynikiem będzie „Qlik”, ponieważ jest to fragment tekstu trzeci od prawej strony zmiennej vMyPath.

W tym przykładzie pokazano, jak można utworzyć wiele wierszy na podstawie jednego wystąpienia funkcji Subfield().

Dodaj przykładowy skrypt do dokumentu i uruchom go. Następnie dodaj do arkusza w swoim dokumencie co najmniej pola wyszczególnione w kolumnie wyników, aby wyświetlić wynik.

LOAD DISTINCT

Player,

SubField(Project,',') as Project;

 

Load * inline [

Player|Project

Neil|Music,OST

Jo|Music

Mike|Music,OST,Video

] (delimiter is '|');

Przykład 5
Player Project
Neil Music
Neil OST
Jo Music
Mike Music
Mike OST
Mike Video

Ten przykład pokazuje, w jaki sposób użycie wielu wystąpień funkcji Subfield(), każde z pominiętym parametrem field_no, w ramach tej samej instrukcji LOAD, tworzy iloczyny kartezjańskie wszystkich kombinacji. Opcja DISTINCT służy do unikania tworzenia zduplikowanych rekordów.

Dodaj przykładowy skrypt do dokumentu i uruchom go. Następnie dodaj do arkusza w swoim dokumencie co najmniej pola wyszczególnione w kolumnie wyników, aby wyświetlić wynik.

LOAD DISTINCT

Instrument,

SubField(Player,',') as Player,

SubField(Project,',') as Project;

 

Load * inline [

Instrument|Player|Project

Guitar|Neil,Mike|Music,Video

Guitar|Neil|Music,OST

Synth|Neil,Jen|Music,Video,OST

Synth|Jo|Music

Guitar|Neil,Mike|Music,OST

] (delimiter is '|');

Przykład 6
Instrument Player Project
Guitar Mike Music
Guitar Mike Video
Guitar Mike OST
Guitar Neil Music
Guitar Neil Video
Guitar Neil OST
Synth Jen Music
Synth Jen Video
Synth Jen OST
Synth Jo Music
Synth Neil Music
Synth Neil Video
Synth Neil OST

Czy ta strona była pomocna?

Jeżeli natkniesz się na problemy z tą stroną lub jej zawartością — literówkę, brakujący krok lub błąd techniczny — daj nam znać, co możemy poprawić!

Dołącz do Programu Modernizacji Analityki

Remove banner from view

Przeprowadź modernizację bez szkody dla Twoich cennych aplikacji QlikView za pomocą programu Analytics Modernization Program. Kliknij tutaj aby uzyskać więcej informacji lub skontaktuj się z nami: ampquestions@qlik.com