34,594
社区成员
发帖
与我相关
我的任务
分享
DECLARE @str VARCHAR(20)='3721,3722,3723,3725'
DECLARE @xml XML
SET @xml = '<row>'+REPLACE(@str,',','</row><row>')+'</row>'
SELECT
T.c.value('.','nvarchar(32)') AS Nums
FROM
@xml.nodes('/row') T(c)
declare @str varchar(20)='3721,3722,3723,3725'
set @str+=','
;with cte as
(
select LEFT(@str,CHARINDEX(',',@str)-1) as strs,RIGHT(@str,LEN(@str)-CHARINDEX(',',@str)) as val
union all
select LEFT(val,CHARINDEX(',',val)-1) as strs,RIGHT(val,LEN(val)-CHARINDEX(',',val)) as val
from cte
where LEN(val)>0
)
select strs from cte
strs
--------------------
3721
3722
3723
3725
(4 行受影响)