SubField  - 指令碼與圖表函數在此頁面  
                 
SubField()  用來從上層字串欄位中擷取子字串元件,其中原始記錄欄位包含兩個或多個部分,以分隔符號分隔。 
 
                可以使用 Subfield()  函數,例如,為了從包含完整名稱的記錄清單中擷取名字和暱稱、路徑名稱的元件部分,或者從逗點分隔的表格中擷取資料。
                如果您在 LOAD  陳述式中使用 Subfield()  函數,並且省略選用 field_no  參數,將針對每一個子字串產生一筆完整記錄。如果使用 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 
                                 
                             
                        
 
                        解釋 
                        此範例展示如何從相同的 LOAD  陳述式中使用 Subfield()  函數的多個執行個體 (每個執行個體均忽略 field_no  參數) 建立所有組合的笛卡兒乘積。將使用 DISTINCT  選項,以免產生重複記錄。