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 的脚本和图表表达式 
                示例 - 脚本和图表表达式 
                        基本示例 
                        
                             
                            
                             
                            
                            
                                
                             
                            
                                
                                    SubField(S,   ';' ,2) 
                                     
                                    如果 S  为 'abc;cde;efg' ,则返回 'cde' 。 
                                 
                                
                                    SubField(S,   ';' ,1) 
                                     
                                     如果 S  为空字符串,则返回一个空字符串。 
                                 
                                
                                    SubField(S,   ';' ,1) 
                                     
                                    如果 S  为 ';' ,则返回一个空字符串。 
                                 
                                
                                    
                                        假设您有一个变量,其值为路径名 vMyPath , 
                                        Set vMyPath=\Users\ext_jrb\Documents\Qlik\Sense\Apps; 。
                                         
                                     
                                    在文本和图像图表中,可添加度量,诸如:SubField(vMyPath, '\',-3 ) ,结果返回 'Qlik ',因为它是从变量 vMyPath  右端开始的第三个子字符串。 
                                 
                             
                        
 
                        脚本示例 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;
 
                        创建可视化 
                        在 Qlik Sense  工作表中创建以 Name 、FirstName  和 SurName  为维度的表格可视化。
                        结果 
                        
                             
                            
                             
                            
                             
                            
                            
                                
                                    Name 
                                    FirstName 
                                    SurName 
                                 
                             
                            
                                
                                    Dave Owen 
                                    Dave 
                                    Owen 
                                 
                                
                                    Joe Tem 
                                    Joe 
                                    Tem 
                                 
                             
                        
 
                        解释 
                        SubField()  函数的作用是将 field_no  参数设置为 1,从而提取 Name  的第一个子字符串。由于 field_no  的值为正值,因此从左到右的顺序用于提取子字符串。第二个函数调用通过将 field_no  参数设置为 -1 来提取第二个子字符串,该字段按照从右到左的顺序提取子字符串。
                        脚本示例 2 
                        加载脚本 
                        在数据加载编辑器中加载以下脚本表达式和数据。
                        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 '|');
 
                        创建可视化 
                        在 Qlik Sense  工作表中创建表格可视化,将 Instrument 、Player  和 Project  作为维度。
                        结果 
                        
                             
                            
                             
                            
                             
                            
                            
                                
                                    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  选项用于避免创建重复记录。