mysql综合排序,[5]-MySQL排序总结

本文详细介绍了MySQL中的排序方法,包括使用ORDER BY子句进行升序和降序排序,以及在MySQL中模拟RANK、DENSE_RANK和ROW_NUMBER功能进行排名。通过案例展示了如何处理相同值的排名,以及在没有内置函数的情况下利用变量赋值实现排名功能。
摘要由CSDN通过智能技术生成

一、对查询结果进行排序(ORDER BY)

1.ORDED BY 子句

使用SELECT抽取数据时,数据的显示是无序的,想要得到有序的数据,那么我们就需要使用ORDER BY子句进行排序。

2.ORDED BY 子句语法:

SELECT ,,,......

FROM

ORDER BY ,,.....

ORDED BY 子句(商品的销售单价升序排列)

其中desc表示降序,asc表示升序排列。

二、rank,dense_rank,row_number 使用上的区别

RANK:跳跃排序

DENSE_RANK:连续排序

row_number:没有重复值的排序[记录相等也是不重复的]可以进行分页使用。

MySQL中不存在类似于SQL Server或Orcal中的以上三个函数来得到排名。

而在实际的工作中,常常需要将查询后排序得到的排名给记录下来。由于项目需要,不仅要对成绩进行排名,而且需要相同成绩的具有相同的排名。这里先来介绍用变量赋值的方法来实现排序。这里取经典面试题里的排序问题来讲解。请看下面三种排序类型

1.按各科成绩进行排序,并显示排名, Score 重复时保留名次空缺

2.按各科成绩进行排序,并显示排名, Score 重复时合并名次

我们来看看怎么解答:

4e8b07eac489

分数表

1)按各科成绩

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值