2017-01-08 8 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