sqlserver怎么把一个表中按分号隔开的字符串分成多行放在一个临时表中呢? 10
这个表是一个帖子版区表,第一列是版区id,最后一列是版区负责人,主要列有:版区id版区负责人id6150414;11151151567150414;1115115157有...
这个表是一个帖子版区表,第一列是版区id,最后一列是版区负责人,
主要列有:
版区id 版区负责人id
6 150414;1115115156
7 150414;1115115157
有一个人员表,有人员id和人员姓名,和这个表联合查询
最后想形成的表结构是
版区id 版区负责人姓名
6 张三、李四
7 张三、王五
都有什么思路可以实现呢?谢谢大家 展开
主要列有:
版区id 版区负责人id
6 150414;1115115156
7 150414;1115115157
有一个人员表,有人员id和人员姓名,和这个表联合查询
最后想形成的表结构是
版区id 版区负责人姓名
6 张三、李四
7 张三、王五
都有什么思路可以实现呢?谢谢大家 展开
1个回答
展开全部
分割“版区负责人Id”,使其结果为
版区Id 版区负责人Id
6 123
6 456
6 789
(这里,我想来想去,只有使用零时表+游标来实现,个人没有想到更好的方法)
CREATE FUNCTION [dbo].[fun_Split]
(
@str VARCHAR(MAX) ,
@split VARCHAR(10)
)
RETURNS TABLE
AS
RETURN
(SELECT B.id FROM ( SELECT [value] = CONVERT(XML , '<v>' + REPLACE(@str , @split , '</v><v>')
+ '</v>')
) A
OUTER APPLY ( SELECT id = N.v.value('.' , 'varchar(100)')
FROM A.[value].nodes('/v') N ( v )
) B
)
GO
--2005以及以上的版本支持这种分割写法。用xml path,把数据搞成你所要的结果
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询