我在 TSQL 中有一項艱巨的任務,我似乎無法找到一種簡單的方法來完成。我正在嘗試使用 CROSS APPLY STRING_SPLIT(sentence, ' '),但我只能得到一個單詞的方法。你能幫忙嗎?謝謝你。
例句:
- 我需要使用 TSQL 拆分字串。
- 這種方法是傳統的,并且在 SQL Server 的所有版本和版本中都受支持。
期望的答案:
- 我需要
- 分開
- 字串使用
- TSQL。
期望的答案:
- 這種方法
- 是傳統的
- , 和
- 支持
- 在所有
- 版本和
- 的版本
- SQL 服務器。
uj5u.com熱心網友回復:
干得好:
首先為任何逗號添加一個空格(您希望將逗號視為一個單詞),然后使用一些 Json 將每個空格上的字串拆分為行,然后使用模數和lag over()分配組以配對每一行,然后基于聚合團體:
declare @s varchar(100)='This approach is traditional, and is supported in all versions and editions of SQL Server';
select Result = String_Agg(string,' ') within group (order by seq)
from (
select j.[value] string, Iif(j.[key] % 2 = 1, Lag(seq) over(order by seq) ,seq) gp, seq
from OpenJson(Concat('["',replace(Replace(@s,',',' ,'), ' ', '","'), '"]')) j
cross apply(values(Convert(tinyint,j.[key])))x(seq)
)x
group by gp;
結果:

看Demo Fiddle
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/479236.html
標籤:tsql
下一篇:回圈遍歷列SQL以選擇多年
