java:
String hql = "select myrank from "+ "( select s.*,dense_rank() over (order by s.studentScore desc) as myrank from StudentPo s) myranktable "
+ "where myranktable.studentId 做含= "+currentUser.getStudentId()+""
数据库里面:
select myrank from(select s.* , rank() over (order by s.student_score desc) as myrank from student_tb s) myranktable
where myranktable.student_id= 13
一样一样的句子,在框架里面就不跑,简直神特么奇怪。
关于语句的拆分:
select s.* , rank() 耐春over (order by s.student_score desc) as myrank from student_tb s这纯亩笑是根据学生成绩得到一个排序过后的表儿,最后一列 列名是 myrank。根据学生成绩排的名词。【可以把 rank() 换成dense_rank()看看效果。】
招数2:【因为总是报未识别的 token(标志),比如 走一遍 java,可能 数据库 就不认识 rank() 和 dense_rank()了。】
所以 我的 java里面这样写的:
String sql = "select myrank from "+ " ( select s.student_id,rank() over ( order by s.student_score desc ) as myrank from student_tb s ) "
+ " where student_id = "+currentUser.getStudentId()+""
Query query = this.getSession().createSQLQuery(sql)
List list =query.list()
this.getSession().beginTransaction().commit()
System.out.println(list)
//this.getHibernateTemplate().
Object ob = list.get(0)
String string = ob.toString()
int number = Integer.parseInt(string)
System.out.println("排名:"+number)
用排序程序。具体步骤如下:1、将表格中的所有同学按照总成绩进行排名。
2、先选中所有数据。
3、点击开始,点击排序和筛选右嫌庆侧下拉箭头。
4、在下拉列表中选弯拦择自定义排序,出现排序对话框。
5、关键字选总成绩,排序选择数值,次序选择降序。
6、所有数据就按照总成绩从高埋者胡到低进行排列了。
SELECT
伍悔 id,
read_total,
(
SELECT
COUNT(read_total)
FROM
t_circle_topic
WHERE
ct.read_total <= read_total
) AS rank
FROM
t_circle_topic AS ct
ORDER BY
read_total DESC
扩展资料
ORDER BY 语句用于对结果集进行排序。
ORDER BY 语句用于根据指定的列对结果集进行排序。
ORDER BY 语句默认按照腔陪正升序对记录进行排序。
如果您希望按照降序对记录进行排序,可以使用 DESC 关键字。
在以上的结果中有两个相等的公司名称 (W3School)。只有这一次,在第一列中乱岁有相同的值时,第二列是以升序排列的。如果第一列中有些值为 nulls 时,情况也是这样的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)