create table curtest (djbh varchar(20) primary key,sales varchar(20))
go
insert curtest
select 'A1','01,02,03' union all --创建表并插入记录
select 'A2','01,02' union all
select 'A3','02,03' union all
select 'A4','02,03,04'
go
declare cur_test cursor for select * from curtest --声明游标
declare @djbh varchar(20) --定义变量单据编号
declare @sales varchar(20) --定义变量销售
declare @star int,@len int,@dhwz int -- 定义变量开始,长度,逗号位置
open cur_test --打开游标
fetch next from cur_test into @djbh,@sales --获取第一条记录
while(@@FETCH_STATUS=0) --根据返回状态确认执行结果。0代表成功
begin
set @star=1 --对开始位置赋值1
set @dhwz=CHARINDEX(',',@sales,@star) --获取第一个逗号位置
set @len=LEN(@sales) --获取字段长度
while(@star<=@LEN) --循环条件,开始位置小于字段长度
begin
select @djbh,substring(@sales,@star,@dhwz-@star) --获取逗号前字符
set @star=@dhwz+1 --每次循环,将上次逗号位置+1作为下次开始位置
set @dhwz=CHARINDEX(',',@sales,@star) --以上次逗号位置+1作为本次开始位置,检索下一个逗号位置
if(@dhwz=0) --判断,当检索不到逗号(即返回值为0,并且已到达最后一个逗号)
begin
select @djbh,SUBSTRING(@sales,@star,(@len-@star)+1) --最后一个逗号后字符,以上一次逗号位置+1开始,长度为字段总长度减开始位置+1
break --跳出循环
end
end
fetch next from cur_test into @djbh,@sales --读取下一条记录,并重新开始执行循环(拆分并检索逗号分割字符)
end
close cur_test
创新互联专注为客户提供全方位的互联网综合服务,包含不限于
网站设计、做网站、化德网络推广、
小程序制作、化德网络营销、化德企业策划、化德品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们大的嘉奖;创新互联为所有大学生创业者提供
化德建站搭建服务,24小时服务热线:028-86922220,官方网址:www.cdcxhl.com
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
本文名称:MSSQL拆分逗号并检索字段-创新互联
URL网址:
http://bjjierui.cn/article/dejcpd.html