全部展开/折叠  
                     SubField  - 脚本和图表函数在该页面上  
                 
SubField()  用于从父字符串字段提取子字符串组成部分,其中原始记录字段由两个或更多用分隔符分隔的部分构成。 
 
                Subfield()  函数可用于(例如)从由全名、路径名的组成部分构成的记录的列表中提取名字和姓氏,或用于从逗号分隔的表格中提取数据。
                如果在忽略可选 field_no  参数的 LOAD  语句中使用 Subfield()  函数,则会为每个子字符串生成一个完整记录。如果使用 Subfield()  加载多个字段,则会创建所有组合的 Cartesian 产品。
                语法:    
                SubField( text, 
delimiter[, field_no ]) 
                返回数据类型:   字符串
                
                    参数 
                     
                    
                     
                    
                    
                        
                     
                    
                        
                            
                                text 
                             
                            原始字符串。可以是硬编码文本、变量 、货币符号扩展或其他表达式。 
                         
                        
                            
                                delimiter 
                             
                            输入 text  中将字符串分成各组成部分的字符。 
                         
                        
                            
                                field_no 
                             
                            
                                可选的第三个参数是整数,用于指定返回父字符串 text  的哪些子字符串。使用值 1 可以返回第一个子字符串,使用值 2 可以返回第二个字符串,以此类推。 
                                
                                    如果 field_no  为正值,子字符串是自左至右提取的。 
                                    如果 field_no  为负值,子字符串是自右至左提取的。 
                                 
                             
                         
                     
                
 
                提示注释              可以使用 SubField()  代替复杂的函数组合(例如 Len() 、Right() 、Left() 、Mid() )和其他字符串函数。
                
                    示例:图表表达式 
                     
                    
                     
                    
                    
                        
                     
                    
                        
                            SubField( 'abc;cde;efg',   ';' ,2 ) 
                             
                            返回 cde  
                         
                        
                            SubField( Null,   ';' ,1 ) 
                             
                             返回一个空字符串 
                         
                        
                            SubField( ';',   ';' ,1 ) 
                             
                            返回一个空字符串 
                         
                        
                            
                                SubField( '\Users\ext_jrb\Documents\Qlik\Sense\Apps;','\',-3 ) 
                                
                             
                            返回 Qlik  
                         
                     
                
 
                示例 - SubField 基本原理 
                图表表达式 
                        概述
                        打开数据加载编辑器,并将下面的加载脚本添加到新部分。 
                        加载脚本包含:
                        
                            
                                加载到名为 Example  的数据表中的数据集。
                             
                            
                                数据表中有一个名为 Name  的字段。
                             
                         
                        加载脚本
                        Example:
Load * inline [
Name
Dave Owen
Joe Tem
]; 
                        结果
                        加载数据并打开工作表。创建新表并将该字段添加为维度:
                        
                        创建以下计算维度:
                        
                            
                                =SubField(Name, ' ',1) ,用于提取出现在空格 ' '  分隔符之前的第一个子字符串。
                             
                            
                                =SubField(Name, ' ',-1) ,用于提取出现在空格 ' '  分隔符之前的第一个子字符串,从字符串右侧开始。
                             
                         
                        
                            Results table 
                             
                            
                             
                            
                             
                            
                            
                                
                                    Name 
                                    SubField(Name, ' ',1) 
                                    SubField(Name, ' ',-1) 
                                 
                             
                            
                                
                                    Dave Owen 
                                    Dave 
                                    Owen 
                                 
                                
                                    Joe Tem 
                                    Joe 
                                    Tem 
                                 
                             
                        
 
                        SubField()  函数的作用是将 field_no  参数设置为 1,从而提取 Name  的第一个子字符串。由于 field_no  的值为正值,因此以从左到右的顺序提取子字符串。第二个函数调用通过将 field_no  参数设置为 -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;
 
                        结果
                        加载数据并打开工作表。创建新表并将这些字段添加为维度:
                        
                        
                            Results table 
                             
                            
                             
                            
                             
                            
                            
                                
                                    Name 
                                    FirstName 
                                    SurName 
                                 
                             
                            
                                
                                    Dave Owen 
                                    Dave 
                                    Owen 
                                 
                                
                                    Joe Tem 
                                    Joe 
                                    Tem 
                                 
                             
                        
 
                        解释
                        SubField  函数的作用是将 field_no  参数设置为 1,从而提取第一个子字符串 Name 。由于 field_no  的值为正值,因此以从左到右的顺序提取子字符串。第二个函数调用通过将 field_no  参数设置为 -1 来提取第二个子字符串,该字段按照从右到左的顺序提取子字符串。
                      
                示例 – SubField 场景 
                图表表达式 
                        概述
                        产品数据集包含产品表。表中的每个产品都有一个标记字段,用于标识产品区域。产品的标记字段可以有多个值。例如,小组件 A 有以下标记:电子产品、小工具、家用。标记值用管道字符 (|) 分隔。本例向您展示如何使用 SubField  函数提取特定的标记值。
                        打开数据加载编辑器,并将下面的加载脚本添加到新部分。 
                        加载脚本包含:
                        
                            
                                加载到名为 Example  的数据表中的数据集。
                             
                            
                                数据表中有以下字段:
                                
                                    
                                        ProductID 
                                        
                                     
                                    
                                        ProductName 
                                        
                                     
                                    
                                        Tags 
                                        
                                     
                                    
                                        Sales 
                                        
                                     
                                 
                             
                         
                        加载脚本
                        Example:
Load  *
INLINE [
ProductID, ProductName, Tags, Sales
1, Widget A, Electronics|Gadgets|Home, 150
2, Widget B, Electronics|Accessories, 200
3, Widget C, Furniture|Home, 100
4, Widget D, Gadgets|Accessories, 250
]; 
                        结果
                        加载数据并打开工作表。创建新表并将这些字段添加为维度:
                        
                            
                                ProductID 
                                
                             
                            
                                ProductName 
                                
                             
                            
                                Tags 
                                
                             
                         
                        创建以下计算维度:
                        
                            
                                =SubField(Tags, '|',1) ,用于提取 Tags  字段中的第一个项目。
                             
                            
                                =SubField(Tags, '|',2) ,用于提取 Tags  字段中的第二个项目。
                             
                            
                                =SubField(Tags, '|',3) ,用于提取 Tags  字段中的第三个项目。
                             
                         
                        
                            Results table 
                             
                            
                             
                            
                             
                            
                             
                            
                             
                            
                             
                            
                            
                                
                                    ProductID 
                                    ProductName 
                                    Tags 
                                    SubField(Tags, '|', 1) 
                                    SubField(Tags, '|', 2) 
                                    SubField(Tags, '|', 3) 
                                 
                             
                            
                                
                                    1 
                                    Widget A 
                                    Electronics|Gadgets|Home 
                                    Electronics 
                                    Gadgets 
                                    Home 
                                 
                                
                                    2 
                                    Widget B 
                                    Electronics|Accessories 
                                    Electronics 
                                    Accessories 
                                    - 
                                 
                                
                                    3 
                                    Widget C 
                                    Furniture|Home 
                                    Furniture 
                                    Home 
                                    - 
                                 
                                
                                    4 
                                    Widget D 
                                    Gadgets|Accessories 
                                    Gadgets 
                                    Accessories 
                                    - 
                                 
                             
                        
 
                        SubField  函数的输出已成功从原始 Tags  字符串中的相关位置返回标记。
                      
                加载脚本 
                        加载脚本
                        打开 数据加载编辑器 ,并将以下加载脚本添加到新部分。 
                        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
                             
                         
                        
                            Results table 
                             
                            
                             
                            
                             
                            
                            
                                
                                    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 
                                 
                             
                        
 
                        解释
                        此示例演示了如何使用 Subfield()  函数的多个实例,每个实例都不考虑 field_no  参数,其中相同的 LOAD  语句会创建所有组合的 Cartesian 产品。DISTINCT  选项用于避免创建重复记录。