将标量函数转换为表函数

时间:2015-05-13 13:46:45

标签: sql-server sql-server-2008 tsql

我有一个标量函数,如果它返回适当变量的值,则从select语句返回一个值。如果没有返回值,则标量函数返回一个输入参数作为结果。

如何在表函数中解决这个问题?

我可以使用这个:

WITH Param
AS (
    SELECT ID
        ,Data
    FROM Configuration
    WHERE NAME = 'NameOfConfiguration'

    UNION ALL

    SELECT NULL
        ,'Default Value'
    )
SELECT TOP 1 Data
FROM Param
ORDER BY ID DESC

而不是:

IF (LEN(ISNULL(@returnvalue, '')) = 0)
BEGIN
    RETURN @thisvalue
END

RETURN @returnvalue

1 个答案:

答案 0 :(得分:0)

表值函数和标量值函数完全不同。

https://msdn.microsoft.com/en-us/library/ms191320.aspx?f=255&MSPPError=-2147217396

此链接将为您提供如何创建表值和标量函数。

如果您需要更多说明,请感觉退回:)