将一个表的字段拆分成多行

--分拆处理示例
createtabletable1(文章IDint,文章标题varchar(10),作者varchar(100),字数int)
inserttable1select101, '文章标题1 ', '作者a,作者b ',120
unionallselect222, '文章标题2 ', '作者x,作者y,作者z ',300
unionallselect343, '文章标题3 ', '作者m,作者n ',420
go
【将一个表的字段拆分成多行】--分拆处理
declare@iint
select@i=max(len(作者))fromtable1
setrowcount@i
selectid=identity(int)into#tfromsyscolumnsa,syscolumnsb
setrowcount0
selecta.文章ID,a.文章标题
,作者=substring(a.作者,b.id,charindex( ', ',a.作者+ ', ',b.id)-b.id)
,字数=a.字数/(len(a.作者)-len(replace(a.作者, ', ', ' '))+1)
fromtable1a,#tb
whereb.id <=len(a.作者)andsubstring( ', '+a.作者,b.id,1)= ', '
go
--删除测试
droptabletable1,#t

    推荐阅读