如何使用游标循环某一列,然后根据逗号截取,再把截取出来的字符串与编码匹配,然后再添加到另一个字段当中。

qq_28875607 2017-07-20 05:38:38

根据逗号截取workArea列中的字符串,然后再判断该字符串对应的编码是什么,添加到[emp1中。


急求大神告知。。
...全文
375 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
二月十六 2017-07-20
  • 打赏
  • 举报
回复
函数
CREATE FUNCTION dbo.f_splitSTR(
@s varchar(8000), --待分拆的字符串
@split varchar(10) --数据分隔符
)RETURNS @re TABLE(col varchar(100))
AS
BEGIN
DECLARE @splitlen int
SET @splitlen=LEN(@split+'a')-2
WHILE CHARINDEX(@split,@s)>0
BEGIN
INSERT @re VALUES(LEFT(@s,CHARINDEX(@split,@s)-1))
SET @s=STUFF(@s,1,CHARINDEX(@split,@s)+@splitlen,'')
END
INSERT @re VALUES(@s)
RETURN
END
GO


--测试数据
if not object_id(N'Tempdb..#T') is null
drop table #T
Go
Create table #T([workArea] nvarchar(42),[temp1] int)
Insert #T
select N'预案管理、突发环境事件预警',NULL union all
select N'突发环境事件现场处理、预案管理、环境风险防控',NULL
GO
if not object_id(N'Tempdb..#T1') is null
drop table #T1
Go
Create table #T1([id] int,[Area] nvarchar(30))
Insert #T1
select 1,N'预案管理' union all
select 2,N'突发环境事件预警' union all
select 3,N'突发环境事件现场处理' union all
select 4,N'环境风险防控'
Go
--测试数据结束
SELECT workArea,
STUFF(( SELECT ',' + RTRIM(#T1.id)
FROM dbo.f_splitSTR(workArea, '、')
JOIN #T1 ON Area = col
FOR
XML PATH('')
), 1, 1, '') AS temp1
FROM #T;



卖水果的net 2017-07-20
  • 打赏
  • 举报
回复
编码在哪儿? 建议给出测试数据,和预期结果。

590

社区成员

发帖
与我相关
我的任务
社区描述
提出问题
其他 技术论坛(原bbs)
社区管理员
  • community_281
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧