SubField - 指令碼與圖表函數
SubField() 用來從上層字串欄位中擷取子字串元件,其中原始記錄欄位包含兩個或多個部分,以分隔符號分隔。
可以使用 Subfield() 函數,例如,為了從包含完整名稱的記錄清單中擷取名字和暱稱、路徑名稱的元件部分,或者從逗點分隔的表格中擷取資料。
如果您在 LOAD 陳述式中使用 Subfield() 函數,並且省略選用 field_no 參數,將針對每一個子字串產生一筆完整記錄。如果使用 Subfield() 載入數個欄位,則會建立所有組合的 Cartesian 產品。
語法:
SubField(text, delimiter[, field_no ])
傳回的資料類型: 字串
引數:
引數 | 描述 |
---|---|
text | 原始字串。這可以是硬式編碼文字、變數、貨幣符號展開或其他運算式。 |
delimiter | 輸入 text 內將字串分為元件部分的字元。 |
field_no |
選用第三引數是一個整數,指定要傳回上層字串 text 中的哪個子字串。使用值 1 可傳回第一個子字串,使用值 2 可傳回第二個子字串,以此類推。
|
範例:
將範例指令碼新增至您的應用程式並予以執行。然後將結果資料行中列出的欄位新增至您應用程式中的工作表以查看結果。
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 |
範例:
此範例展示如何從相同的 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 |