跳到主要内容

SubField - 脚本和图表函数

SubField() 用于从父字符串字段提取子字符串组成部分,其中原始记录字段由两个或更多用分隔符分隔的部分构成。

Subfield() 函数可用于(例如)从由全名、路径名的组成部分构成的记录的列表中提取名字和姓氏,或用于从逗号分隔的表格中提取数据。

如果在忽略可选 field_no 参数的 LOAD 语句中使用 Subfield() 函数,则会为每个子字符串生成一个完整记录。如果使用 Subfield() 加载多个字段,则会创建所有组合的 Cartesian 产品。

Syntax:  

SubField(text, delimiter[, field_no ])

Return data type: 字符串

Arguments:  

参数
参数 说明
text 原始字符串。可以是硬编码文本、变量、货币符号扩展或其他表达式。
delimiter 输入 text 中将字符串分成各组成部分的字符。
field_no

可选的第三个参数是整数,用于指定返回父字符串 text 的哪些子字符串。使用值 1 可以返回第一个子字符串,使用值 2 可以返回第二个字符串,以此类推。

  • 如果 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() 函数的多个实例,每个实例都不考虑 field_no 参数,其中相同的 LOAD 语句会创建所有组合的 Cartesian 产品。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