hql关于distinct的问题

whyhao1986 2010-01-11 10:27:00
随便一张表t,字段a为字符串
hql1 = select count( distinct a) from t
hql2 = select count( distinct length(a)) from t
s.createQuery().list();
hql1可以执行
hql2执行的时候报错,说在(a)这里,不该出现“(”,unexpected token: (
为什么啊?难道hibernate不允许这么写?这句话在oracle里是可以执行的
...全文
319 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
islandrabbit 2010-01-12
  • 打赏
  • 举报
回复
这个没办法,只能用:

Query query = session.createSQLQuery("select count( distinct length(a)) from t");
SambaGao 2010-01-11
  • 打赏
  • 举报
回复
没有遇到过。只能关注了。
andyan_2008 2010-01-11
  • 打赏
  • 举报
回复
不能length函数是否有返回值,distinct后面不能跟函数吧

select count(distinct a_len) from(select length(a) as a_len from t )
这样应该可以把
zhaining522 2010-01-11
  • 打赏
  • 举报
回复
我的是hibernate 2.1的版本
运行没问题
你的是什么版本?
牛叔 2010-01-11
  • 打赏
  • 举报
回复
hql虽然跟sql差不多
但是也是有差别的

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧