下面是已知有三個固定變數@pay1、@pay2、@pay2,是從@total開始做減法作業(實際要求還有其它陳述句處理事項的)。
declare @total int,@pay1 int,@pay2 int,@pay3 int
set @total=100
set @pay1=10
set @pay2=20
set @pay3=30
begin
if @total>=@pay1
begin
--其它陳述句處理事項......
set @total=@total - @pay1
end
else
begin
--其它陳述句處理事項......
goto mark
end
if @total>=@pay2
begin
--其它陳述句處理事項......
set @total=@total - @pay2
end
else
begin
--其它陳述句處理事項......
goto mark
end
if @total>=@pay3
begin
--其它陳述句處理事項......
set @total=@total - @pay3
end
else
begin
--其它陳述句處理事項......
goto mark
end
end
mark:
但實際要求是這三個固定變數@pay1、@pay2、@pay2是動態變化的,可能是0~N個變數,想用WHILE陳述句做,請問如要如何寫?
uj5u.com熱心網友回復:
先是如何動態定義@pay1-N,然后如何用WHILE或其它陳述句回圈用@total減@pay1-N這陳述句?uj5u.com熱心網友回復:
其中這個N是每執行時,是知道值的,但每執行的值不同。uj5u.com熱心網友回復:
其中這個N可以從表tb1中得到,表tb1里的欄位含有pay1、pay2、pay3、pay4...、payN,這個N值是由欄位名數量獲取的。問1:如何DECLARE 這個動態的@PAY1~N變數?
問2:如何用WHILE或其它陳述句回圈把@total這變數減這個動態的@pay1~N?
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/230486.html
標籤:疑難問題
上一篇:SQLServer Merge陳述句執行沒有錯誤,有部分資料沒有插入到庫
下一篇:CE新生的問題,大佬可以回答嗎?
