獲取最大值的三種方法:
1. 使用 hql
integer c = (integer)dbt.getsession().createquery("select max(o.id) from object o " ).uniqueresult();
注意:要加上別名「o」, o.id注意大小寫! 否則會出現"無法解釋的屬性"錯誤!
2. 使用native sql
sql = "select max(articleid) maxid from ljarticle";
maxid = (integer)(session.createsqlquery(sql).addscalar("maxid", hibernate.integer) ).uniqueresult();
注意:要加上「maxid」標量
3. 使用criteria
integer c = (integer)dbt.getsession().createcriteria(article.class)
.setprojection( projections.projectionlist().add(projections.max("articleid " ) ) )
.uniqueresult() ;
同樣要注意articleid是區分大小寫的!
SQL分組最大值
employee表包含所有員工資訊,每個員工有其對應的 id,salary 和 department id。id name salary departmentid 1 joe 70000 1 2 henry 80000 2 3 sam 60000 2 4 max 90000 1 department...
常用的獲取最大值
表 if exists select from dbo.sysobjects where id object id n dbo code and objectproperty id,n isusertable 1 drop table dbo code gocreate table dbo code...
SQL分組求最大值
訂單操作記錄表,需要獲取每個訂單最新的操作更新時間,以及操作id。使用 over 以及 row number 來實現 select from select operationid,orderno,updatetime,row number over partition by orderno orde...