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.

Syntax:  

SubField(text, delimiter[, field_no ])

Return data type: ciąg znaków

Arguments:  

Argumenty
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. Użycie wartości 1 spowoduje zwrócenie pierwszego fragmentu tekstu, a wartości 2 zwrócenie drugiego fragmentu tekstu, i tak dalej.

  • Jeśli field_no jest wartością dodatnią, wówczas podciągi są wyodrębniane od lewej do prawej.
  • Jeśli field_no jest wartością ujemną, wówczas podciągi są wyodrębniane od prawej do lewej.
Porada: 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.

Example:  

Dodaj skrypt przykładowy do aplikacji i uruchom ją. Następnie dodaj do arkusza w swojej aplikacji 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;

Tabela wynikowa
Name FirstName Surname
Dave Owen Dave Owen
Joe Tem Joe Tem

Example:  

Ten przykład przedstawia, jak używając wielu instancji funkcji Subfield() (w każdej pomijając parametr field_no) z tej samej instrukcji LOAD powoduje utworzenie iloczynów kartezjańskich wszystkich kombinacji. Opcja DISTINCT jest używana, aby uniknąć tworzenia zduplikowanego rekordu.

Dodaj skrypt przykładowy do aplikacji i uruchom ją. Następnie dodaj do arkusza w swojej aplikacji 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 '|');

 

Tabela wynikowa
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