【问题标题】:CASE Statement in Groovy SQLGroovy SQL 中的 CASE 语句
【发布时间】:2012-06-02 01:48:05
【问题描述】:

我有一些调用 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 错误?如果是这样,那是您的 SQL 语法有问题,而不是 grails。如果问题仍然存在,请发布 SQL。

标签: mysql sql grails groovy


【解决方案1】:

我猜这可能是您的 mysql 语法的问题,但我无法确认,因为它没有提供。或者,但不是那么优雅;你可以用 groovy 来处理这个......

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

不过,首先您应该打印失败的查询并直接在 MySQL 中运行,看看是否是语法问题。

【讨论】:

    猜你喜欢
    • 2014-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-22
    • 2015-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多