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 --聲明游標 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) --根據返回狀態(tài)確認執(zhí)行結果。0代表成功 begin set @star=1 --對開始位置賦值1 set @dhwz=CHARINDEX(',',@sales,@star) --獲取第一個逗號位置 set @len=LEN(@sales) --獲取字段長度 while(@star<=@LEN) --循環(huán)條件,開始位置小于字段長度 begin select @djbh,substring(@sales,@star,@dhwz-@star) --獲取逗號前字符 set @star=@dhwz+1 --每次循環(huán),將上次逗號位置+1作為下次開始位置 set @dhwz=CHARINDEX(',',@sales,@star) --以上次逗號位置+1作為本次開始位置,檢索下一個逗號位置 if(@dhwz=0) --判斷,當檢索不到逗號(即返回值為0,并且已到達最后一個逗號) begin select @djbh,SUBSTRING(@sales,@star,(@len-@star)+1) --最后一個逗號后字符,以上一次逗號位置+1開始,長度為字段總長度減開始位置+1 break --跳出循環(huán) end end fetch next from cur_test into @djbh,@sales --讀取下一條記錄,并重新開始執(zhí)行循環(huán)(拆分并檢索逗號分割字符) end close cur_test
成都創(chuàng)新互聯公司秉承實現全網價值營銷的理念,以專業(yè)定制企業(yè)官網,網站設計制作、網站建設,微信小程序定制開發(fā),網頁設計制作,成都做手機網站,網絡營銷推廣幫助傳統企業(yè)實現“互聯網+”轉型升級專業(yè)定制企業(yè)官網,公司注重人才、技術和管理,匯聚了一批優(yōu)秀的互聯網技術人才,對客戶都以感恩的心態(tài)奉獻自己的專業(yè)和所長。
文章名稱:MSSQL拆分逗號并檢索字段
網頁路徑:http://chinadenli.net/article14/pijpge.html
成都網站建設公司_創(chuàng)新互聯,為您提供全網營銷推廣、品牌網站設計、企業(yè)建站、網站改版、ChatGPT、云服務器
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯