sql - SQL中调用动态函数名

标签 sql sql-server tsql sql-function

是否可以在 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

关于sql - SQL中调用动态函数名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10557258/

相关文章:

python - 使用 pyodbc 和 SQL Server 的 SQL IN 运算符

php - 意外的 '$_POST' 错误消息

sql-server - 如何将数据从 SQL Server 数据库传输到 Oracle 数据库

sql-server - SQL2016 中的 dateadd 操作存在冲突,但 2012 中没有

mysql - 如何过滤select中的空值?

mysql - 根据之前的 COUNT() 显示多个组的最大值

sql - 一次删除多个表

sql - 合并具有公共(public)字段的同一表的两行

sql - 比较 2 个表中的数据

sql-server - t-sql存储过程创建脚本