create table curtest (djbh varchar(20) primary key,sales varchar(20)) go insert curtest select 'A1','01,02,03' union all --創(chuàng)建表并插入記錄 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 --聲明游標(biāo) declare @djbh varchar(20) --定義變量單據(jù)編號(hào) declare @sales varchar(20) --定義變量銷售 declare @star int,@len int,@dhwz int -- 定義變量開(kāi)始,長(zhǎng)度,逗號(hào)位置 open cur_test --打開(kāi)游標(biāo) fetch next from cur_test into @djbh,@sales --獲取第一條記錄 while(@@FETCH_STATUS=0) --根據(jù)返回狀態(tài)確認(rèn)執(zhí)行結(jié)果。0代表成功 begin set @star=1 --對(duì)開(kāi)始位置賦值1 set @dhwz=CHARINDEX(',',@sales,@star) --獲取第一個(gè)逗號(hào)位置 set @len=LEN(@sales) --獲取字段長(zhǎng)度 while(@star<=@LEN) --循環(huán)條件,開(kāi)始位置小于字段長(zhǎng)度 begin select @djbh,substring(@sales,@star,@dhwz-@star) --獲取逗號(hào)前字符 set @star=@dhwz+1 --每次循環(huán),將上次逗號(hào)位置+1作為下次開(kāi)始位置 set @dhwz=CHARINDEX(',',@sales,@star) --以上次逗號(hào)位置+1作為本次開(kāi)始位置,檢索下一個(gè)逗號(hào)位置 if(@dhwz=0) --判斷,當(dāng)檢索不到逗號(hào)(即返回值為0,并且已到達(dá)最后一個(gè)逗號(hào)) begin select @djbh,SUBSTRING(@sales,@star,(@len-@star)+1) --最后一個(gè)逗號(hào)后字符,以上一次逗號(hào)位置+1開(kāi)始,長(zhǎng)度為字段總長(zhǎng)度減開(kāi)始位置+1 break --跳出循環(huán) end end fetch next from cur_test into @djbh,@sales --讀取下一條記錄,并重新開(kāi)始執(zhí)行循環(huán)(拆分并檢索逗號(hào)分割字符) end close cur_test
成都創(chuàng)新互聯(lián)公司秉承實(shí)現(xiàn)全網(wǎng)價(jià)值營(yíng)銷的理念,以專業(yè)定制企業(yè)官網(wǎng),網(wǎng)站設(shè)計(jì)制作、網(wǎng)站建設(shè),微信小程序定制開(kāi)發(fā),網(wǎng)頁(yè)設(shè)計(jì)制作,成都做手機(jī)網(wǎng)站,網(wǎng)絡(luò)營(yíng)銷推廣幫助傳統(tǒng)企業(yè)實(shí)現(xiàn)“互聯(lián)網(wǎng)+”轉(zhuǎn)型升級(jí)專業(yè)定制企業(yè)官網(wǎng),公司注重人才、技術(shù)和管理,匯聚了一批優(yōu)秀的互聯(lián)網(wǎng)技術(shù)人才,對(duì)客戶都以感恩的心態(tài)奉獻(xiàn)自己的專業(yè)和所長(zhǎng)。