跳到主要内容

SubField - 脚本和图表函数

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

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

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

语法:  

SubField(text, delimiter[, field_no ])

返回数据类型: 字符串

参数:  

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

可选的第三个参数是整数,用于指定返回父字符串 text 的哪些子字符串。

  • 如果 field_no 为正值,则会从左至右提取子字符串。
  • 如果 field_no 为负值,则会从右至左提取子字符串。
提示注释可以使用 SubField() 代替复杂的函数组合(例如 Len()Right()Left()Mid())和其他字符串函数。

示例和结果:  

示例 1-3
示例 结果
SubField('abc;cde;efg', ';', 2) 返回 'cde'
SubField('', ';', 1) 返回 NULL
SubField(';', ';', 1) 返回空字符串

将示例脚本添加到文档并运行。然后,至少要将结果列中列出的字段添加到文档中的表格才能查看结果。

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;

示例 4
Name FirstName Surname
Dave Owen Dave Owen
Joe Tem Joe Tem

假设您有一个保存路径名 vMyPath 的变量,

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

在文本和图像图表中,您可以添加度量,例如:
SubField(vMyPath, '\',-3),这将生成“Qlik”,因为它是变量 vMyPath 从右起的第三个字符串。

该示例显示多个行如何通过 Subfield() 的单个实例创建。

将示例脚本添加到文档并运行。然后,至少要将结果列中列出的字段添加到文档中的表格才能查看结果。

LOAD DISTINCT

Player,

SubField(Project,',') as Project;

 

Load * inline [

Player|Project

Neil|Music,OST

Jo|Music

Mike|Music,OST,Video

] (delimiter is '|');

示例 5
Player Project
Neil Music
Neil OST
Jo Music
Mike Music
Mike OST
Mike Video

此示例演示如何在同一 LOAD 语句中使用 Subfield() 函数的多个实例(每个实例都省略了 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 '|');

示例 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

本页面有帮助吗?

如果您发现此页面或其内容有任何问题 – 打字错误、遗漏步骤或技术错误 – 请告诉我们如何改进!

加入分析现代化计划

Remove banner from view

使用分析现代化计划实现现代化,同时不损害您宝贵的 QlikView 应用程序。 单击此处 了解更多信息或联系: ampquestions@qlik.com