是否可以在 SQL 中调用具有动态名称的函数?

例如:

SELECT functionid, (SELECT results FROM dbo.Function_*functionid*) AS results
FROM List_of_Functions

这将为表 List_of_Functions 中的每一行调用不同的函数。

或者我在这一切都错了吗?

最佳答案

您将需要构建(输入它,或根据您的表动态构建它)一个 SQL 语句,如:

SELECT
    functionid
        ,CASE  functionid
            WHEN 1 THEN dbo.Function_1()
            WHEN 2 THEN dbo.Function_2()
            WHEN 3 THEN dbo.Function_3()
         END AS results
    FROM List_of_Functions

与其构建所有这些函数,不如构建一个函数并传入一个函数可以用来区分处理的值不是更好吗?喜欢:
SELECT
    functionid
        ,dbo.Function(functionid) AS results
    FROM List_of_Functions_Parameters

10-08 15:02