想寫個存盤程序
大致如下:
create PROC _proc_實際值計算
@A DECIMAL(18,2),
@B DECIMAL(18,2),
@C DECIMAL(18,2),
@D DECIMAL(18,2),
@E DECIMAL(18,2),
@公式 NVARCHAR(50)
AS
BEGIN
//根據傳入的文本公式內容和數值,得出結果
END
GO
//第一種可能
EXEC dbo._proc_實際值計算 @A = 1,
@B = 50000,
@C = NULL,
@D = NULL,
@E = NULL,
@公式 = '@A/@B*80000'
//第二種可能
exec dbo._proc_實際值計算 @A = 1,
@B = null,
@C = NULL,
@D = NULL,
@E = NULL,
@公式 = 'CASE when @A>=1 THEN 0 ELSE NULL END '
還麻煩哪位幫忙告知一下.
uj5u.com熱心網友回復:
CREATE PROCEDURE FORMULA
(@A DECIMAL(18,2),
@B DECIMAL(18,2),
@C DECIMAL(18,2),
@D DECIMAL(18,2),
@E DECIMAL(18,2),
@FORMULA NVARCHAR(50))
AS
BEGIN
DECLARE @FORMULA_NEW NVARCHAR(100)
SET @FORMULA_NEW='SELECT '+@FORMULA+' AS RESULT'
IF @A IS NOT NULL AND @B IS NOT NULL
BEGIN
EXEC SP_EXECUTESQL @FORMULA_NEW,N'@A DECIMAL(12,2),@B DECIMAL(12,2)',@A=@A,@B=@B
END
IF @A IS NOT NULL AND @B IS NULL
BEGIN
EXEC SP_EXECUTESQL @FORMULA_NEW,N'@A DECIMAL(12,2)',@A=@A
END
END
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/249990.html
標籤:基礎類
上一篇:資料視窗查詢問題
