Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mySQL中作为参数的聚合函数_Mysql_Sql - Fatal编程技术网

mySQL中作为参数的聚合函数

mySQL中作为参数的聚合函数,mysql,sql,Mysql,Sql,我在寻找解决办法,但我找不到答案。是否可以在mySQL中创建将聚合函数作为参数的过程或函数? 例如,如果我调用函数“myFunction(SUM)”,它将使用SUM作为聚合函数,如果我调用myFunction(MAX),它将使用MAX.您只能使用动态SQL来实现这一点——也就是说,使用prepare和exec语句 如果要以内联方式执行此操作,您可能需要以下内容: select (case when myfunction = 'SUM' then sum(x) when

我在寻找解决办法,但我找不到答案。是否可以在mySQL中创建将聚合函数作为参数的过程或函数?
例如,如果我调用函数“myFunction(SUM)”,它将使用SUM作为聚合函数,如果我调用myFunction(MAX),它将使用MAX.

您只能使用动态SQL来实现这一点——也就是说,使用
prepare
exec
语句

如果要以内联方式执行此操作,您可能需要以下内容:

select (case when myfunction = 'SUM' then sum(x)
             when myfunction = 'MAX' then max(x)
             . . .
        end) as custom_agg
我还应该注意,不能将函数名作为参数传入