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