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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.