SQL分段讀取技巧

declare @v_i int,@v_temp varchar(300),@v_outQty numeric(10,4),@v_Pric numeric(10,4),@v_Pch varchar(30),@v_Result varchar(4000) set @v_Result='000523000200|1.4|520.03;000524000300|2.0|32.00;000528000300|11.0|345.00' set @v_i=charindex(';',@v_Result) if @v_i>0 --下帳跨批次,則分解 while 1=1 begin set @v_i=charindex(';',@v_Result) if @v_i<1 --最後段 begin set @v_temp=@v_Result set @v_Pch=substring(@v_temp,0,charindex('|',@v_temp)) set @v_temp=substring(@v_temp,charindex('|',@v_temp)+1,len(@v_temp)-charindex('|',@v_temp)) set @v_Pric=cast(substring(@v_temp,0,charindex('|',@v_temp)) as numeric(10,4)) set @v_outQty= substring(@v_temp,charindex('|',@v_temp)+1,len(@v_temp)-charindex('|',@v_temp)) break end set @v_temp=substring(@v_Result,0,@v_i) set @v_Result=substring(@v_Result,@v_i+1,len(@v_Result)-@v_i) set @v_Pch=substring(@v_temp,0,charindex('|',@v_temp)) set @v_temp=substring(@v_temp,charindex('|',@v_temp)+1,len(@v_temp)-charindex('|',@v_temp)) set @v_Pric=substring(@v_temp,0,charindex('|',@v_temp)) set @v_outQty= substring(@v_temp,charindex('|',@v_temp)+1,len(@v_temp)-charindex('|',@v_temp)) end
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章