注册 登录
编程论坛 SQL Server论坛

各位高手,如何从一个字段当中取出固定字符?在线等,谢谢

anwn 发布于 2012-11-23 13:22, 451 次点击
各位高手,有一张表有“付款单位”这个字段,字段的长度都是6的倍数,如何生成一张新表,把一个字段当中每6位截取成一条新的记录,比如倒数第三条记录变成BLM557与B8M970两条记录?谢谢。
付款单位
BEN915
BEN915B78809B79576BG6159BRD933
BVM768
BVM768
BLM557
BLM557B8M970
B820J0B18608B3W072BVY585
B886E2B9V839BU9878U75972B036E1B31P88BG3509UQ4763
2 回复
#2
半杯清茶2012-11-23 14:20
select stuff((select''+  付款单位 from table for xml path('')),1,1,'')

将你的多条记录合成一条记录,得到一个长的字串串,然后你再对这个长的字符串截取,应该可以满足你的要求。
#3
mxbing19842014-08-08 17:21
回复 楼主 anwn
With T
 As
 (
 Select Convert(Varchar(1000),Left(付款单位,6)) As 付款单位,SUBSTRING(付款单位,7,LEN(付款单位)) As 临时 From tab  
 Union All
 Select Convert(Varchar(1000),Left(临时,6)),SUBSTRING(临时,7,LEN(临时)) From T
    Where LEN(临时)>=6  
 )
 Select 付款单位 From T Where LEN(付款单位)=6

--sql2005或以上版本,按你的数据拆分出来是23条数据
1