【问题标题】:Jooq ARRAY_AGG where clauseJooq ARRAY_AGG where 子句
【发布时间】:2022-01-07 10:49:12
【问题描述】:

我有想要使用 scala Jooq 参数执行的查询。

select * from table where ("value1") in unnest(array) and ("value2") in unnest(array);

我可以将此部分转换为以下 jooq 参数,但我无法获得我需要为 where 子句做的事情。

dslContext.select(asterisk()).from(table).where(*)

【问题讨论】:

    标签: scala google-bigquery jooq


    【解决方案1】:

    目前 jOOQ 似乎不支持该特定语法,另请参阅此功能请求: https://github.com/jOOQ/jOOQ/issues/12330

    如果您在 jOOQ 中缺少某个功能,您可以随时通过 plain SQL templating 扩展 jOOQ。在这种情况下:

    def inUnnest[T](value: T, array: Field[Array[T]]): Condition = 
      inUnnest(DSL.value(value), array)
    
    def inUnnest[T](value: Field[T], array: Field[Array[T]]): Condition =
      DSL.condition("{0} in unnest ({1})", value, array)
    

    【讨论】:

      猜你喜欢
      • 2020-04-03
      • 1970-01-01
      • 2016-09-11
      • 2021-10-17
      • 2020-07-20
      • 1970-01-01
      • 2021-12-19
      • 1970-01-01
      • 2020-10-05
      相关资源
      最近更新 更多