字符串拆分,修改,再合并

原创 2007年09月29日 21:19:00

假设有2个表,需要组成一个视图,分别如下:

表1: [Tags]

ID      Name
------------------------------
1        Tag1
2        Tag2
3        Tag3
4        Tag4
5        Tag5
...

表2:[Test]

ID      Title      TagID
------------------------------
1       标题1        1,4
2       标题2       1,3,4
3       标题3       2,5
4       标题4       3,4
5       标题5       2,3,4,5
...

如上例,如建立一个视图,并根据表[Test]的[TagID]字段的数组,关联表[Tags]的[Name]字段对应的行,得到如下视图:

视图1:[View_Test]

ID      Title      Tags
-----------------------------
1       标题1      Tag1,Tag4
2       标题2      Tag1,Tag3,Tag4
3       标题3      Tag2,Tag5
4       标题4      Tag3,Tag4
5       标题5      Tag2,Tag3,Tag4,Tag5 

------------------------------------------------------------------------------------------------------------------------------------

解决思路:是先把字符串按逗号拆了,再根据tags表修改,最后再合并

if object_id('tempdb..#') is not null
   drop table #
if object_id('tempdb..#t') is not null
   drop table #t
if object_id('tempdb..#tb') is not null
   drop table #tb
--按逗号分割
select top 2000 id=identity(int,1,1) into # from syscolumns a,syscolumns b
select a.id,a.title,tagid=substring(a.tagid,b.id,charindex(',',a.tagid+',',b.id)-b.id) into #t
from test a, # b
where substring(','+a.tagid,b.id,1)=',' order by a.id,b.id
--更新
update #t
set tagid=b.name
from #t a,tags b
where a.tagid=b.id
--合并
select *,cast(',' as varchar(8000)) as aa into #tb from #t order by id,tagid  
declare @id int,@name varchar(50)  
update #tb
set @name=case @id when id then @name+','+tagid else tagid end,aa=@name,@id=id 
select id,title,max(aa) as tagid from #tb group by id,title  

【工具】字符串 加密 解密 不可逆加密 拆分 合并

之前的项目是直接明文存储密码,这样肯定不行,于是在发布时给用户密码进行了不可逆加密。 下面是帮助类,包括了字符串拆分 using System; using System.Collections....

JQuery中 数组与字符串(过滤,排序,拆分,合并)

1.操作数组元素--将数组中的元素转换为大写显示出来 $(document).ready(function () { ...
  • ws_hgo
  • ws_hgo
  • 2011年07月26日 16:18
  • 23640

关于字符串拆分,合并问题的整理

--关于新方法解决字符串替换和拆分问题的总结 -->TravyLee生成测试数据:[test] if object_id('[test]') is not null drop table [test...

一种字符串合并与拆分的方法

有个REST接口,能提供中文繁体到中文简体的转换服务,为了提高转换效率,需要将多个字符串合并为一个字符串,进行转换后再进行拆分,请提供一种字符串合并与拆分的解决方案。通过审题,实现方案的核心在于分割字...
  • yiifaa
  • yiifaa
  • 2017年06月13日 22:49
  • 329

SQL--字符串拆分,合并,替换

--关于新方法解决字符串替换和拆分问题的总结 -->TravyLee生成测试数据:[test] if object_id('[test]') is not null drop table [t...

类型转换与字符串拆分

  • 2013年06月25日 12:33
  • 3.07MB
  • 下载

多薄多表——合并、汇总、拆分重组、批量打印、批量修改……

几百个工作薄、几千个工作表,要汇总?怎么办?复制、粘贴……?搞死人,而且易出错!多薄多表合并,一键帮你搞定! ——Mergebooks.dll...
  • lxlyhu
  • lxlyhu
  • 2016年06月28日 22:28
  • 291

字符串按特定字符拆分

  • 2012年05月07日 16:51
  • 34KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:字符串拆分,修改,再合并
举报原因:
原因补充:

(最多只允许输入30个字)