代码之家  ›  专栏  ›  技术社区  ›  Shinoy Shaji

我们可以在HQL中使用to\u char()和GROUP BY吗

  •  0
  • Shinoy Shaji  · 技术社区  · 7 年前

    使用Hibernate执行以下查询时

    select to_char(vdadCloseDate,'yyyymm'), count(*) from RmDashboardAccountDataBe where 1=1  and vdadRmId in('MK13','MK11') GROUP BY TO_CHAR(vdadCloseDate,'YYYYMM')
    

    我得到以下例外情况,

    Java语言sql。SQLSyntaxErrorException:ORA-00979:不是GROUP BY表达式

    有没有办法处理这个问题?

    1 回复  |  直到 7 年前
        1
  •  1
  •   Littlefoot    7 年前

    这是“纯”Oracle SQL(即不是HQL),它看起来与您的查询一模一样(尽管我不得不使用不同的表名和列名):

    SQL> select to_char(hire_date, 'yyyymm'), count(*)
      2  from employees
      3  where department_id in (10, 20)
      4  group by to_char(hire_date, 'yyyymm');
    
    TO_CHA   COUNT(*)
    ------ ----------
    200309          1
    200508          1
    200402          1
    
    SQL>
    

    所以-是的,它工作正常。

    这是指向的链接 HQL Group by clause 这也表明这样的查询是完全有效的(请看一下,这样我就不必在这里复制/粘贴它的内容)。

    这就是为什么我问您是否确定这是返回ORA-00979错误的查询。正如你回答的那样,嗯,我不知道该说什么。。。