导航
  • 主页
  • 基础类
  • 应用实例
  • 新技术前沿

sql??

yunxiang 2003-12-10 11:42:22
表:

学号 分数

1 50
2 56
3 87
4 40
5 23


查找结果:

学号 分数 名次
1 50 3
2 56 2
3 87 1
4 40 4
5 23 5

...全文
4 点赞 收藏 6
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
azsoft 2003-12-11
SELECT *,(select count(*)+1 from 表 B WHERE A.分数<B.分数) AS 名次 FROM 表 A ORDER BY A.学号
回复
azsoft 2003-12-11
select a.学号,a.分数,b.名次 from 表 Inner join (select 分数,identity(int,1,1)as 名次 from 表 order by 分数 desc
) b on a.分数=b.分数
回复
CrazyFor 2003-12-11

select *,(select count(*) from 表 bb where bb.分数<=aa.分数) as 名次 from 表 aa order by 学号
回复
azsoft 2003-12-11
declare @t Table (学号 varchar(10),分数 varchar(10))
insert into @t
select '1','50'
union all select '2','56'
union all select '3','87'
union all select '4','40'
union all select '5','23'

select 学号,分数 into #t from @t
select 分数,identity(int,1,1)as 名次 into #t1 from @t order by 分数 desc

select #t.学号,#t.分数,#t1.名次 from #t left join #t1 on #t1.分数=#t.分数

drop Table #t
drop Table #t1
回复
dlpseeyou 2003-12-11
select * ,名次=(select sum(1) from test2 b where a.分数<=b.分数)from test2 a order by 学号
回复
victorycyz 2003-12-11
select * ,identity(int,1,1) into #t from table1 order by 分数 desc
select * from #t order by id
go

drop table #t
回复
发动态
发帖子
MS-SQL Server
创建于2007-09-28

3.2w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
社区公告
暂无公告