我创建了一个如下所示的标量函数。现在我需要改变这个函数,为这个函数提供一个可选参数,它应该返回一个表集。我尝试使用case语句,如果存在,但它没有返回我想要的结果集。
以下是两个结果集:
:一种。没有可选参数
SELECT fnPay(@Id, @Id1, @Id2, @Id3 , @Id4)
结果集:
Result
-------
123.00
B中。指定了可选参数。
SELECT fnPay fnPay(@Id, @Id1, @Id2, @Id3 , @Id4, 1)
结果集:
Col1 Col2 Col3
--------------
ABC XYZ KLM
有人可以帮帮我吗?
CREATE FUNCTION fnPay
(@Id1 DATETIME ,
@Id2 NVARCHAR(5),
@Id3 NVARCHAR(5),
@Id4 NUMERIC(8,4)
)
RETURNS NUMERIC(8, 4)
AS
BEGIN
DECLARE @Result NUMERIC(8,4);
SET @Result = (SELECT t1.Description
FROM tbl1 t1
JOIN tbl2 t2 ON t2.id = t1.id
JOIN tbl3 t3 ON t3.id = t2.id
WHERE t1.id = 1
AND t2.id = 2
AND .......)
RETURN @Result
END