メイン コンテンツをスキップする

SubField - スクリプトおよびチャート関数

SubField()は、元のレコード項目が区切り文字で区切られた複数の部分で構成されている文字列項目からサブストリング部分を抽出するために使用されます。

Subfield() 関数は、フルネームで構成されるレコードのリストからファースト ネームと姓、パス名のコンポーネント パーツを抽出したり、コンマ区切りのテーブルからデータを抽出したりするために使用できます。

LOAD ステートメントで、オプションの field_no パラメータを省略して、Subfield() 関数を使用する場合、サブストリングごとに完全な 1 つのレコードが生成されます。Subfield()を使用してを複数の項目がロードされる場合、すべての組み合わせのデカルト積が作成されます。

Syntax:  

SubField(text, delimiter[, field_no ])

Return data type: string

Arguments:  

引数
引数 説明
text 元の文字列。これは、ハードコードされたテキスト、変数、ドル記号展開、またはその他の数式となります。
delimiter 文字列をコンポーネント パーツに分割する入力 text 内の文字。
field_no

オプションの 3 番目の引数は、親文字列 text のサブストリングのどれが返されるかを指定する整数です。値 1 を使用すると最初のサブストリングが返され、値 2 を使用すると 2 番目のサブストリングが返されます。値 3 以降も同様です。

  • field_no が正の値の場合、サブストリングは左から右に抽出されます。
  • field_no が負の値の場合、サブストリングは右から左に抽出されます。
ヒント: SubField() は、Len()Right()Left()Mid()、およびその他の文字列関数など、複雑な関数の組み合わせの代わりに使用することができます。

Example:  

アプリにスクリプト例を追加して実行します。その後、結果列に含まれている項目をアプリのシートに追加して結果を表示します。

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;

結果のテーブル
Name FirstName Surname
Dave Owen Dave Owen
Joe Tem Joe Tem

Example:  

この例では、Subfield() 関数の複数のインスタンスを、すべての組み合わせのデカルト積を作成する同じ LOAD ステートメント内から field_no パラメータを除外して使用する方法を示しています。DISTINCT オプションを使用すると、重複レコードが作成されるのを避けることができます。

アプリにスクリプト例を追加して実行します。その後、結果列に含まれている項目をアプリのシートに追加して結果を表示します。

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 '|');

 

結果のテーブル
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