hql及sql獲取最大值

2021-08-31 01:46:09 字數 649 閱讀 5931

獲取最大值的三種方法:

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...