id name grade
1 2 80
2 2 90
3 3 80
4 4 88一条Select语句打印如下信息:
id name grade rank(排名)
1 2 80 3
2 2 90 1
3 3 80 3
4 4 88 2
1 2 80
2 2 90
3 3 80
4 4 88一条Select语句打印如下信息:
id name grade rank(排名)
1 2 80 3
2 2 90 1
3 3 80 3
4 4 88 2
解决方案 »
- CONVERT函数做日期转换的问题.(高分)急~~~~
- 求sql语句,关于查询最新时间和筛选不重复数据
- SQL2005导出的脚本如何在SQL2000下运行?
- T-SQL 考勤處理
- 数据库中表table ,tid是外键,其中有'01’,'02’...等值。删除掉非01,02关联的所有值。
- 存储过程中如何传递日期型参数,麻烦高手指点一下,谢谢!
- sql server 2000的分布式分区视图的问题,插入数据时提示“该操作未能执行,因为 OLE DB 提供程序 'SQLOLEDB' 无法启动分布式事务”
- primary key 和not null一起用有意义吗?
- 存储过程问题,多谢了
- 写文档时,数据库的表结构编写的好方法,顺便问个问题
- ###咨询达人,连锁店的数据库都是什么分布设计的?##
- 请教条SQL语句
select *,DENSE_RANK() over( order by grade) from tb
--sql 2000
select *,排名=(select count(distict grade) from tb where grade>=a.grade)
from tb a
declare @t table (id int,name int,grade int)
insert into @t
select 1,2,80 union all
select 2,2,90 union all
select 3,3,80 union all
select 4,4,88select *,dense_rank() over (order by grade desc) as rank from @t
/*
id name grade rank
----------- ----------- ----------- --------------------
2 2 90 1
4 4 88 2
1 2 80 3
3 3 80 3
*/
insert into tb
select 1,2,80 union
select 2,2,90 union
select 3,3,80 union
select 4,4,88
--sql2005
select *,DENSE_RANK() over( order by grade desc) from tb
--sql 2000
select *,排名=(select count(distinct grade) from tb where grade>=a.grade)
from tb a
id name grade
----------- ----------- ----------- --------------------
2 2 90 1
4 4 88 2
1 2 80 3
3 3 80 3(4 行受影响)id name grade 排名
----------- ----------- ----------- -----------
1 2 80 3
2 2 90 1
3 3 80 3
4 4 88 2(4 行受影响)
DROP TABLE TEST_a
GO
CREATE TABLE TEST_a
(
A NVARCHAR(50) NULL,
B NVARCHAR(50) NULL,
C NVARCHAR(50) NULL
)INSERT TEST_a
SELECT 1,2,80
UNION ALL
SELECT 2,2,90
UNION ALL
SELECT 3,3,80
UNION ALL
SELECT 4,4,88SELECT A,B,C,ROW_NUMBER()OVER (ORDER BY C DESC) AS '排名' FROM TEST_a
ORDER BY ADROP TABLE TEST_a
供参考,并列的没算出来
select *,RANK() over( order by grade desc) from tb order by id
insert into @t
select 1,2,80 union all
select 2,2,90 union all
select 3,3,80 union all
select 4,4,88select *,dense_rank() over (order by grade desc) as rank
from @t
order by id