请教一个拆分字符串的问题

suiyizhu3 suiyizhu3 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
create  FUNCTION [dbo].[FN_SplitData](
@delimited NVARCHAR(MAX),
@delimiter NVARCHAR(100)
) RETURNS @t TABLE (id INT IDENTITY(1,1), val NVARCHAR(MAX))
AS
BEGIN
DECLARE @xml XML
SET @xml = N'<t>' + REPLACE(@delimited,@delimiter,'</t><t>') + '</t>'

INSERT INTO @t(val)
SELECT r.value('.','varchar(MAX)') as item
FROM @xml.nodes('/t') as records(r)
RETURN
END


declare @Questions varchar(MAX)='1-32|26,42-41|32'
;WITH CTE1 AS(
SELECT id, LEFT(val, CHARINDEX('-', val)-1) AS QuestionId, SUBSTRING(val, CHARINDEX('-', val)+1, 100) AS [IndexNumber]
, SUBSTRING(val, CHARINDEX('|', val)+1, 100) AS Numbers
FROM [dbo].[FN_SplitData](@Questions,',')
)

select QuestionId,[IndexNumber],Numbers from CTE1
--得到的是下面的结果,但是不是我想要的
/*
QuestionId IndexNumber Numbers
1 32|26 26
42 41|32 32
*/
--下面的才是我想要的
/*
QuestionId IndexNumber Numbers
1 32 26
42 41 32
*/
--求帮忙修改一下代码
...全文

相关推荐

评论 1
收藏 已收藏
分享
返回顶部
suiyizhu3
应用实例 27,579 成员 68,540 内容