SubField - 脚本和图表函数
Subfield() 用于从父字符串字段提取子字符串组成部分,其中原始记录字段由两个或更多用分隔符分隔的部分构成。
Subfield() 函数可用于(例如)从由全名、路径名的组成部分构成的记录的列表中提取名字和姓氏,或用于从逗号分隔的表格中提取数据。
如果在忽略可选 field_no 参数的 LOAD 语句中使用 Subfield() 函数,则会为每个子字符串生成一个完整记录。如果使用 Subfield() 加载多个字段,则会创建所有组合的 Cartesian 产品。
语法:
SubField(text, delimiter[, field_no ])
返回数据类型: 字符串
参数:
参数 | 说明 |
---|---|
text | 原始字符串。可以是硬编码文本、变量、货币符号扩展或其他表达式。 |
delimiter | 输入 text 中将字符串分成各组成部分的字符。 |
field_no |
可选的第三个参数是整数,用于指定返回父字符串 text 的哪些子字符串。
|
示例和结果:
示例 | 结果 |
---|---|
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;
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 '|');
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 '|');
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 |