0

groovySqlオブジェクトを呼び出すGroovyコードがあります。

Sql sql = new Sql(dataSource)
sql.execute(insert)

以前は正常に機能していましたが、CASEステートメントを使用してモデル化しようとした条件付きロジックがいくつかあります。CASE WHEN a.pick = ${somevalue} THEN ${100} ELSE 0 END CASE"

ただし、認識されないというランタイムエラーが発生しますが、クエリの他の場所で認識され、新しいものでaはないため、CASEステートメントが一般に認識されないという事実の症状であると考えられます。aどうすればこれを達成できますか?ありがとう。

4

1 に答える 1

1

これはあなたのmysql構文の問題かもしれないと推測していますが、提供されていないため確認できません。あるいは、それほどエレガントではありません。これはgroovyで処理できます...

def sqlInsert = "insert into foo (bar) values (${(foo.pick == someValue)? 100 : 0})"

ただし、最初に失敗したクエリを印刷し、MySQL で直接実行して、最初に構文の問題かどうかを確認する必要があります。

于 2012-06-02T13:20:17.540 に答える