create table Scores
(
id int identity(1,1) primary key,
XingMing varchar(20) not null,
Score int not null
)insert Scores select '陈七',100
insert Scores select '黄八',80
insert Scores select '莉莉',90
insert Scores select '李四',90
insert Scores select '张三',50select * from Scoresselect *,[排名]=(select count(*) from Scores where tmp.Score<=Score) from Scores tmp
drop table Scores下面是我执行的结果,但是我想因为莉莉和李四都是第3,那么习惯上张三就应该是6了,这个该如何实现呢
1 陈七 100 1
2 黄八 80 4
3 莉莉 90 3
4 李四 90 3
5 张三 50 5最终想要的结果
1 陈七 100 1
2 黄八 80 4
3 莉莉 90 3
4 李四 90 3
5 张三 50 6
(
id int identity(1,1) primary key,
XingMing varchar(20) not null,
Score int not null
)insert Scores select '陈七',100
insert Scores select '黄八',80
insert Scores select '莉莉',90
insert Scores select '李四',90
insert Scores select '张三',50select * from Scoresselect *,[排名]=(select count(*) from Scores where tmp.Score<=Score) from Scores tmp
drop table Scores下面是我执行的结果,但是我想因为莉莉和李四都是第3,那么习惯上张三就应该是6了,这个该如何实现呢
1 陈七 100 1
2 黄八 80 4
3 莉莉 90 3
4 李四 90 3
5 张三 50 5最终想要的结果
1 陈七 100 1
2 黄八 80 4
3 莉莉 90 3
4 李四 90 3
5 张三 50 6
解决方案 »
- 求推荐:win7旗舰版64位的sqlServer和VisualStudio的版本和下载地址
- sql 简单问题
- SQLSERVER中我想把数据和字典分别放在两个库中运行时会不会影响效率?
- 安装 sql server 2008 的问题
- 求最優算法(判斷某一資料是否存在)
- 关于backup database 不理解的地方
- 请教一个三表相连的SQL语句!
- 求SQL销售日报表的语句
- SQL SERVER中的c:\program files\missoft sql server\mssql\data\中的文件为何拷贝不行呢?
- 关于DECLARE CURSOR和FETCH NEXT FROM 的问题。
- 我是初学者,问个可能被笑话的问题:查询分析器与企业管理器,哪个功能更强大些呀。
- 如何对照结构一样的两个表,把A表中有的数据而B表没的数据加到B表中?
----------- -------------------- ----------- -----------
1 陈七 100 1
2 黄八 80 4
3 莉莉 90 2
4 李四 90 2
5 张三 50 5
drop table Scores
select *,[排名]=(select count(*)+1 from Scores where tmp.Score<Score) from Scores tmp
name score
aa 99
bb 56
cc 56
dd 77
ee 78
ff 76
gg 78
ff 501. 名次生成方式1,Score重复时合并名次
SELECT * , Place=(SELECT COUNT(DISTINCT Score) FROM jh03 WHERE Score >= a.Score)
FROM jh03 a
ORDER BY Place
结果
Name Score Place
---------------- ----------------- -----------
aa 99.00 1
ee 78.00 2
gg 78.00 2
dd 77.00 3
ff 76.00 4
bb 56.00 5
cc 56.00 5
ff 50.00 62. 名次生成方式2 , Score重复时保留名次空缺
SELECT * , Place=(SELECT COUNT(Score) FROM jh03 WHERE Score > a.Score) + 1
FROM jh03 a
ORDER BY Place
结果
Name Score Place
--------------- ----------------- -----------
aa 99.00 1
ee 78.00 2
gg 78.00 2
dd 77.00 4
ff 76.00 5
bb 56.00 6
cc 56.00 6
ff 50.00 8