2017-01-08 49 views
1

我正在尋找解決方案,但找不到答案。是否有可能在mySQL中創建過程或函數,將聚合函數作爲參數? 例如,如果我調用函數'myFunction(SUM)',它將使用SUM作爲聚合函數,如果我調用myFuction(MAX)它將使用MAX。作爲mySQL中的參數的聚合函數

回答

2

您只能使用動態SQL執行此操作 - 即使用prepareexec語句。

如果你想這樣做在線,你可能想是這樣的:

select (case when myfunction = 'SUM' then sum(x) 
      when myfunction = 'MAX' then max(x) 
      . . . 
     end) as custom_agg 

我還應該注意的是,你不能在作爲參數傳遞一個函數名稱。

+0

非常感謝,現在一切都清楚了 – ju5tlazy