34,590
社区成员
发帖
与我相关
我的任务
分享
WITH a0 (msg) AS
(
SELECT '0302' UNION ALL
SELECT '21345' UNION ALL
SELECT '213567' UNION ALL
SELECT '31123'
)
,a1 AS
(
SELECT ROW_NUMBER() OVER(ORDER BY @@servername) id,*
FROM a0
)
,a2 AS
(
SELECT id,msg,SUBSTRING(msg,1,1) msgb,1 n FROM a1
UNION ALL
SELECT id,msg,SUBSTRING(msg,n+1,1),n+1 FROM a2
WHERE n+1<=LEN(msg)
)
--SELECT * FROM a2 ORDER BY 1
SELECT msg=(SELECT ''+msgb FROM a2 WHERE id=a.id ORDER BY msgb FOR XML PATH(''))
FROM a2 a
GROUP BY id
OPTION(MAXRECURSION 0)
select A from TAB order by A