簡體   English   中英

拆分字符串Teradata SQL

[英]Split String Teradata SQL

我正在尋找在Teradata中拆分字符串的方法。

該表可能看起來像這樣。

column1
hello:goodbye:afternoon

我正在嘗試使用SUBSTRING和INSTR提取特定的單詞。 所以,說我想選擇“再見”。 我正在嘗試以下查詢。

SELECT SUBSTRING(a.column1 from index(a.column1,':')+1 for INSTR(a.column1,':',0,2))
FROM db.table as a

我收到以下錯誤。

SELECT Failed. [3707] Syntax error, expected something like ')' between the word 'INSTR' and '('

我不確定為什么會收到該錯誤。 它使我可以使用INDEX來代替INSTR來推導一個數字,因此我不確定為什么當我使用INSTR時它為什么以這種方式起作用。

如果這是TD14,則不需要INSTR ,則有一個STRTOK函數:-)

STRTOK(column1,':',2),

對於早期版本,它是

CASE 
   WHEN column1 LIKE '%:%:%'
   THEN SUBSTRING(column1 FROM POSITION(':' IN column1) + 1 FOR POSITION(':' IN 
        SUBSTRING(column1 FROM POSITION(':' IN column1) + 1)) - 1)
   WHEN column1 LIKE '%:%'
   THEN SUBSTRING(column1 FROM POSITION(':' IN column1) + 1)
END

CASE LIKE ist只是為了防止在沒有冒號時出現“ 字符串下標越界 ”錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM