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

--分拆处理示例
create   table   table1(文章ID   int,文章标题   varchar(10),作者   varchar(100),字数   int)
insert   table1   select   101, '文章标题1 ', '作者a,作者b '             ,120
union     all         select   222, '文章标题2 ', '作者x,作者y,作者z ',300
union     all         select   343, '文章标题3 ', '作者m,作者n '               ,420
go

--分拆处理
declare   @i   int
select   @i=max(len(作者))   from   table1
set   rowcount   @i
select   id=identity(int)   into   #t   from   syscolumns   a,syscolumns   b
set   rowcount   0

select   a.文章ID,a.文章标题
,作者=substring(a.作者,b.id,charindex( ', ',a.作者+ ', ',b.id)-b.id)
,字数=a.字数/(len(a.作者)-len(replace(a.作者, ', ', ' '))+1)
from   table1   a,#t   b
where   b.id <=len(a.作者)   and   substring( ', '+a.作者,b.id,1)= ', '
go

--删除测试
drop   table   table1,#t

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值