我在 Teradata SQL 中有如下表:
col1
---------
O|1234|5RFTGS|022
O|5526|AAGHT7|022
O|1789|IIT63F|022
第一個值總是:“O|” 然后有 4 個數字等等......我只需要使用這 4 個數字代碼創建新列,因此我需要如下內容:
col1 | col2
---------------------------
O|1234|5RFTGS|022 | 1234
O|5526|AAGHT7|022 | 5526
O|1789|IIT63F|022 | 1789
我怎樣才能在 Teradata SQL 中做到這一點?
uj5u.com熱心網友回復:
使用 STRTOK
SELECT col1
, STRTOK(col1,'|',2) AS col2
FROM YourTable
uj5u.com熱心網友回復:
您的示例資料顯示固定長度:
Substring(col1 From 1 FOR 13),
Substring(col1 From 15)
但它可能是可變的,然后可以使用 INSTR 找到第三個“|”:
Substring(col1 From 1 FOR Instr(col1, '|', 1, 3)-1),
Substring(col1 From Instr(col1, '|', 1, 3) 1)
如果可能少于 3 | 您需要使用 CASE 添加健全性檢查(或切換到 REGEXP_SUBSTR)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/389903.html
標籤:sql 数据 teradata-sql-助手
上一篇:可以將計算欄位設定為VARCHAR(MAX)以外的任何內容嗎?
下一篇:創建2個表JPA之間的關系
