我正在嘗試使用 SQL Server 2019 中的 OPENJSON 函式拆分以下字串:
DECLARE @x varchar(400) = N'A,B,"C,1",D,'
--SELECT '["' replace(string_escape(@x,'json'),',','","') '"]'
SELECT
[Key] 1 AS Seq,
Value
FROM
OPENJSON('["' REPLACE(STRING_ESCAPE(@x, 'json'), ',', '","') '"]')
但結果回傳為:

我想這樣顯示它:

謝謝
uj5u.com熱心網友回復:
這就是我的想法帶給我的地方。
注意: 的意外結果"'s是不平衡的。
示例或dbFiddle
DECLARE @x varchar(400) = N'A,B,"C,1",D,'
Select Seq= Grp
,value = replace(string_agg(Value,','),'"','')
From (
SELECT [Key] 1 AS Seq
,Value
,Grp = sum( case when charindex('"',Value)<=1 then 1 else 0 end ) over (order by [key] 0)
FROM OPENJSON('["' replace(string_escape(@x,'json'),',','","') '"]')
) A
Group By Grp
Order By Grp
結果
Seq value
1 A
2 B
3 C,1
4 D
5
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/530945.html
標籤:sqlsql服务器tsqlsql-server-2019
上一篇:通過分隔符逗號將多列拆分為行
