首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

求一起拆分为多行的SQL语句

2012-09-19 
求一行拆分为多行的SQL语句现有表名为aaa地区内容----------------中国021sp.html|管材|4355028sp.html|

求一行拆分为多行的SQL语句
现有表名为aaa
地区 内容
----------------
中国 021sp.html|管材|4355;028sp.html|建筑材料|3209
中国 023sp.html|材|4356;025sp.html|建|9209

需实现效果:
地区 内容
----------------
中国 021sp.html|管材|4355
中国 028sp.html|建筑材料|3209
中国 023sp.html|材|4356
中国 025sp.html|建|9209

请赐教,谢谢。



[解决办法]

SQL code
if object_id('[aaa]') is not null drop table [aaa]gocreate table [aaa]([地区] varchar(4),[内容] varchar(45))insert [aaa]select '中国','021sp.html|管材|4355;028sp.html|建筑材料|3209' union allselect '中国','023sp.html|材|4356;025sp.html|建|9209'goselect  a.地区, 内容=substring(a.内容,b.number,charindex(';',a.内容+';',b.number)-b.number)from [aaa] ajoin master..spt_values b on b.type='P'where charindex(';',';'+a.内容,b.number)=b.number/**地区   内容---- ---------------------------------------------中国   021sp.html|管材|4355中国   028sp.html|建筑材料|3209中国   023sp.html|材|4356中国   025sp.html|建|9209(4 行受影响)**/
[解决办法]
SQL code
-->根据树哥的换个条件if object_id('[aaa]') is not null drop table [aaa]gocreate table [aaa]([地区] varchar(4),[内容] varchar(45))insert [aaa]select '中国','021sp.html|管材|4355;028sp.html|建筑材料|3209' union allselect '中国','023sp.html|材|4356;025sp.html|建|9209'go-->开始查询select  a.地区,        内容=substring(a.内容,b.number,charindex(';',a.内容+';',b.number)-b.number)from [tb] ajoin master..spt_values b on b.type='P'where substring(';'+a.内容,b.number,1)=';'-->测试结果---- --------------------------/*地区    内容中国    021sp.html|管材|4355中国    028sp.html|建筑材料|3209中国    023sp.html|材|4356中国    025sp.html|建|9209*/
[解决办法]
探讨
嗯,可以,请问要将上面拆分的行合并还原成一行如何写呢?

热点排行