mysql - Groovy SQL 中的 CASE 语句

标签 mysql sql grails groovy

我有一些调用 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/

相关文章:

php - UserCake 中的自定义 PHP SQL 更新功能

java - Oracle TO_DATE 函数在 Mysql 中并行,它应该同时支持 DB oracle 和 mysql

php - 选择值对并在 mysql 中分配变量名称

grails - Grails插件无法访问多数据源

authentication - 从 Grails 中的过滤器定义 Controller 可访问变量

mysql - SQL查询,从多个表中获取数据并查询结果

sql - 使用索引加速连接

sql - 如何在sql server中计算平均值

mysql - 在正确的记录行显示 COUNT() 总数

Grails spring security获取登录用户