问题描述
已经写好select 姓名,语文,数学,英语 from 成绩表 要求结果集如下:姓名语文语文名次数学数学名次英语英语名次张三801442132李四702501661 该怎么弄呢?
解决方案
你可以试用oracle 的 rank()函数进行处理,具体使用你可以参考其它文档
解决方案二:
select e.姓名,英语,e.rk,语文,c.rk,数学,m.rk(select 姓名,英语,rownum rk from 成绩表 order by 英语 desc) ejoin (select 姓名,语文,rownum rk from 成绩表 order by 语文 desc) c on e.姓名=c.姓名join (select 姓名,数学,rownum rk from 成绩表 order by 数学 desc) m on e.姓名=m.姓名
解决方案三:
可以根据不同的排序,在后台条件判断,对sql语句做拼接
时间: 2024-10-02 17:01:31