動的SQLの一部には、クエリの他の結果に依存する関数を取得する部分がありますが、これらの結果を使用してこの関数を評価します。私はeval()がSQLに存在しないので、私は何を使用するのですか?SQL Server - 動的クエリで関数を評価する
非常に単純化されたバージョン
select reading, functiontype, @result = eval(f.functionformula)
from readingstables r
join functiontable f on (r.functiontype = f.functiontype)
だから、基本的に(これらは一例に過ぎ式であることに注意してください)私はf.functiontype場合formulatype
を経由して測定値のセットに関連しているfunctionformulaを使用したいです== '' をf.functionformula =読ん*場合 を読んf.functiontype == 'B' を=本当のバージョン* costant/anothervalue //などなど
を読んf.functionformula抱擁ですeカーソルを駆動するストアド・プロシージャ内の動的SQLの部分。私は1つのクエリでそれを行うことを好むだろうが、私は妥協し、最初から2番目の動的クエリを駆動する必要があると思われる。
あなたの最高のアプローチはおそらくあなたが言及しているものです。 。 。 2つの動的クエリ。最初の人は正しい関数を探します。 2番目はそれを使用します。これにより、関数の引数や戻り値の型にも柔軟に対応できます。 –