SUBSTRING 函式

依據使用者定義的字串起始及結束索引值,比對部分或完整字串。
  • 輸入可以是資料欄參照或字串常值。
  • 由於 SUBSTRING 函式的比對是根據固定的數值,變更長度與資料欄位結構可能會導致方案無法正確執行。
  • SUBSTRING 函式中的起始和結束值必須是數字值。如果您需要使用模式來比對字串,則請改用 extract 轉換。請參閱 Extract 轉換

基本用法

資料欄參照範例:

derive type:single value:SUBSTRING(MyName,0,5)

輸出:系統會將 MyName 資料欄值的前五個字母寫入新資料欄。

字串常值範例:

derive type:single value:SUBSTRING('Hello, World',0,5)

輸出:系統會將 Hello 字串寫入新資料欄。

語法

derive type:single value:SUBSTRING(column_string,start_index,end_index)

引數是否必要?資料類型說明
column_string字串要套用於函式的資料欄名稱或字串常值
start_index整數 (非負整數)來源資料欄或值中起始字元的索引值
end_index整數 (非負整數)來源資料欄或值中結束字元的索引值

如要進一步瞭解語法標準,請參閱語言文件語法附註

column_string

待搜尋的資料欄名稱或字串常數。

  • 如果系統找不到字串或資料欄值,則產生的結果也會遺漏該值。
  • 字串常數必須以引號括住 ('Hello, World')。
  • 不支援多個資料欄和萬用字元。

使用須知:

資料類型是否必要?範例值
字串MyName

start_index

字串中用來開始子字串比對的字元索引值。

  • 字串中第一個字元的索引是 0
  • 值必須小於 end_index
  • 如果這個值超過字串長度,則會傳回遺漏值。

使用須知:

資料類型是否必要?範例值
整數 (非負整數)0

end_index

字串中用來結束子字串比對的字元索引值。

  • 值必須大於 start_index
  • 如果這個值超過字串長度,則字串結束即為比對結束。如果您知道資料的長度上限,則可以在此使用該值。

使用須知:

資料類型是否必要?範例值
整數 (非負整數)5

範例

範例 - 郵遞區號中的分段資訊

來源:

美國郵遞區號含有 5 位數數字,並隨附選用的郵遞區號加 4 位數數字延伸。有效郵遞區號值可以是這些格式的混合。

在郵遞區號值中,每個數字都有重要意義:

  • 數字 1:郵遞區號區段
  • 數字 2-3:區段中的地區
  • 數字 4-5:地區中的區域或市鎮
  • 數字 6-9:區域或市鎮中選用的郵遞區號加 4 位數 ID

以下是部分範例資料:

LastNameZipCode
Able94101
Baker23502-1122
Charlie36845

轉換:

您想知道某一郵遞區號地區中該地區及區域或市鎮的 ID。您可以將下列轉換指令套用到 ZipCode 資料欄以擷取此資訊:

derive type:single value:SUBSTRING(ZipCode,1,3)

derive type:single value:SUBSTRING(ZipCode,3,5)

因為字串長度可以是 5 或 10 個字元,所以在第二個轉換指令中也必須使用 SUBSTRING 函式。如果資料限制為 5 位數郵遞區號,您可以使用 RIGHT 函式。

結果:

LastNameZipCodesubstring_ZipCodesubstring_ZipCode2
Able941014101
Baker23502-11223502
Charlie368456845

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Google Cloud Dataprep 說明文件
需要協助嗎?請前往我們的支援網頁