zoukankan      html  css  js  c++  java
  • SQL排序

    今天经理出了题SQL语句:每个学生按照语文成绩的排名,如果没有成绩那就排名最后,要求有列 排名名次,学生姓名,成绩
    2张表分别:

    SQL排序 - 小蛇 - 小蛇--
    SQL排序 - 小蛇 - 小蛇--

     rank () over:

    select rank () over (order by a.Score desc ) as 排名名次,a.SName as 学生姓名,a.Score as 成绩 from
    (
    select TScore.Score as score,TStudent.SName from TStudent left join TScore on TScore.Sno =TStudent.SNo
    where isnull(TScore.CourseID,'A02')='A02') as a order by a.Score desc


    SQL排序 - 小蛇 - 小蛇--
    如果成绩为空的话序号就都显示一样

    row_number() over :

    select row_number() over  (order by a.Score desc ) as 排名名次,a.SName as 学生姓名,a.Score as 成绩 from
    (
    select TScore.Score as score,TStudent.SName from TStudent left join TScore on TScore.Sno =TStudent.SNo
    where isnull(TScore.CourseID,'A02')='A02') as a order by a.Score desc


    SQL排序 - 小蛇 - 小蛇--
    row_number() over 按照行来排序

    dense_rank () over:

    select dense_rank () over(order by a.Score desc ) as 排名名次,a.SName as 学生姓名,a.Score as 成绩 from
    (
    select TScore.Score as score,TStudent.SName from TStudent left join TScore on TScore.Sno =TStudent.SNo
    where isnull(TScore.CourseID,'A02')='A02') as a order by a.Score desc


    SQL排序 - 小蛇 - 小蛇--
    如果成绩是一样的话,序号也显示一样,好比说John的成绩是77,那他的排名也是3,而Marry的排名是4

  • 相关阅读:
    sed附加命令
    01_Mac下安装homebrew
    02_linux常用指令
    18_Condition条件
    01.IDEA常用快捷键
    17_重入锁ReentrantLock
    秒杀系统架构分析与实战--转载
    16_Queue_利用wait()和notify()编写一个阻塞队列
    15_volatile
    14_synchronized深入
  • 原文地址:https://www.cnblogs.com/tony312ws/p/2127222.html
Copyright © 2011-2022 走看看