我有一些调用 Groovy Sql 对象的 Groovy 代码:
Sql sql = new Sql(dataSource)
sql.execute(insert)
它在过去工作得很好,但现在我尝试使用像 CASE WHEN a.pick = ${somevalue} THEN ${100} ELSE 0 END CASE"
这样的 CASE 语句来建模一些条件逻辑。
但是,我收到运行时错误,指出它无法识别 a
,但我认为这是它一般不识别 CASE 语句这一事实的症状,如 a
在查询的其他地方被识别并且不是什么新鲜事。我怎样才能做到这一点?谢谢。
最佳答案
我猜测这可能是你的 mysql 语法的问题,但我无法确认,因为它没有提供。或者,但不是那么优雅;你可以用 groovy 来处理这个...
def sqlInsert = "insert into foo (bar) values (${(foo.pick == someValue)? 100 : 0})"
但是,首先您应该打印失败的查询并直接在 MySQL 中运行它,看看是否是语法问题。
关于mysql - Groovy SQL 中的 CASE 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10859206/