浏览 10099 次
锁定老帖子 主题:hql写的一个取最大值的语句
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2010-07-10
前段时间忙与换工作,好久没有写blog了。以前公司只用oracle数据库,而且开发用jdbcTemplate,什么查询了之类的直接用sql语句就搞定了,可现在改用hebernate,同时公司说要考虑各数据库兼容性的问题,所以许多oracle特有的特性便不能使用,这不,现在就遇到了一个问题需要解决了,需要从一个列表里面找到某一个字段的最大序号,可这个列是字符串类型,格式为‘省份’+'部门'+顺序号,现在需要根据省份以及部门找到最大的序号,我以前用sql语句很容易就可以解决该问题了.解决办法: select max(to_number(substr(列名,前缀长度))) maxnum from 表名 selelct max(SUBSTRING(对象.属性名,前缀长度)) from 对象, selelct max( CAST(SUBSTRING(对象.属性名,前缀长度),integer)) from 对象
执行sql语句,问题搞定。 这里参考了javaeye中http://wangtong40.iteye.com/blog/355624的文章中的hql方法,感谢一下。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2010-07-12
不错,挺好的。如果数据量有3000万以上的话,不知道效率如何
|
|
返回顶楼 | |
发表时间:2010-07-12
如果用namedquery可以吗?
|
|
返回顶楼 | |
发表时间:2010-07-12
lxtkong-029 写道 不错,挺好的。如果数据量有3000万以上的话,不知道效率如何
如果数据量超过3000万,我估计会死,以前工作时候,数据量超过1000万时候,取总量都会等好长时间的。 |
|
返回顶楼 | |
发表时间:2010-07-12
iq527 写道 如果用namedquery可以吗?
namedquery我没有尝试过,不过你可以试一下,如果可以,也可以贴出来。 |
|
返回顶楼 | |