使用 T-SQL,我想根據分隔符將單列拆分為多列。
使用下面給定的示例資料:

無論是否有 5 個單詞,我都想將 col1 分成 5 列,示例如下:

我實際上可以使用子字串和子查詢來做到這一點,但我遇到了下面的錯誤。所以我認為我的方法不是最有效的方法:
訊息 40197,級別 20,狀態 2,第 44 行
服務在處理您的請求時遇到錯誤。請再試一次。錯誤代碼 8632。訊息 0,級別 20,狀態 0,第 43 行
當前命令發生嚴重錯誤。結果,如果有的話,應該丟棄。
希望你能幫助我。謝謝你。
uj5u.com熱心網友回復:
一種選擇是使用 JSON 來決議字串
示例或dbFiddle
Select Col1 = JSON_VALUE(S,'$[0]')
,Col2 = JSON_VALUE(S,'$[1]')
,Col3 = JSON_VALUE(S,'$[2]')
,Col4 = JSON_VALUE(S,'$[3]')
,Col5 = JSON_VALUE(S,'$[4]')
From YourTable A
Cross Apply ( values ( '["' replace(string_escape([Col1],'json'),':','","') '"]' ) ) B(S)
結果
Col1 Col2 Col3 Col4 Col5
Japan Tokyo Asia 2020 1
Australia Austria 2022 1 null
uj5u.com熱心網友回復:
我相信像這樣使用 STRING_SPLIT 的東西可能在這里作業:
SELECT Col1[1]
, Col1[2]
, Col1[3]
, Col1[4]
, Col1[5]
FROM (
SELECT STRING_SPLIT(Col1, ':')
FROM Table
)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/456856.html
