求简单的sql语句!(升序降序)

qishihenwunai 2010-09-16 08:23:32
一张成绩表!要按成绩升序并且是班级降序排列!怎么写?
...全文
1153 42 打赏 收藏 转发到动态 举报
写回复
用AI写文章
42 条回复
切换为时间正序
请发表友善的回复…
发表回复
fpzgm 2010-09-20
  • 打赏
  • 举报
回复

create table t(uid int,class int)
go
insert t values(1,1)
insert t values(2,2)
insert t values(3,3)
insert t values(4,4)
insert t values(5,5)
insert t values(6,6)

select a.uid,b.class from
(select uid,row_number()over(order by uid) as row from t) a,
(select class,row_number()over(order by class desc) as row from t) b
where a.row=b.row

uid class
----------- -----------
1 6
2 5
3 4
4 3
5 2
6 1


abuying 2010-09-20
  • 打赏
  • 举报
回复
不好意思!
我再改一下
如果是不连接的id

/**create table t(uid int,class int)
go
insert t values(1,1)
insert t values(2,2)
insert t values(3,3)
insert t values(4,4)
insert t values(5,5)
insert t values(6,6)
insert t values(8,7) --多插入一行不连续的id
**/
--select class,rank() over(order by class desc) as Rclass from t
--select uid,rank() over(order by uid asc) as Ruid from t

select b.uid,a.class from
(select class,rank() over(order by class desc) as Rclass from t) as a
inner join
(select uid,rank() over(order by uid asc) as Ruid from t) as b
on a.Rclass=Ruid

uid class
----------- -----------
1 7
2 6
3 5
4 4
5 3
6 2
8 1

(7 行受影响)
abuying 2010-09-20
  • 打赏
  • 举报
回复
不好意思!
我再改一下
如果是不连接的id

/**create table t(uid int,class int)
go
insert t values(1,1)
insert t values(2,2)
insert t values(3,3)
insert t values(4,4)
insert t values(5,5)
insert t values(6,6)
insert t values(8,7) --多插入一行不连续的id
**/
--select class,rank() over(order by class desc) as Rclass from t
--select uid,rank() over(order by uid asc) as Ruid from t

select b.uid,a.class from
(select class,rank() over(order by class desc) as Rclass from t) as a
inner join
(select uid,rank() over(order by uid asc) as Ruid from t) as b
on a.Rclass=Ruid

uid class
----------- -----------
1 7
2 6
3 5
4 4
5 3
6 2
8 1

(7 行受影响)
abuying 2010-09-20
  • 打赏
  • 举报
回复
/**create table t(uid int,class int)
go
insert t values(1,1)
insert t values(2,2)
insert t values(3,3)
insert t values(4,4)
insert t values(5,5)
insert t values(6,6)
**/
select b.uid,a.class from
(select class,rank() over(order by class desc) as Rclass from t) as a
inner join
(select uid,rank() over(order by uid asc) as Ruid from t) as b
on a.Rclass=uid

uid class
----------- -----------
1 6
2 5
3 4
4 3
5 2
6 1

(6 行受影响)
wuguoxian001 2010-09-20
  • 打赏
  • 举报
回复
其实我 做过那个例子 是楼主的思路错了

select * from table_name order by score asc grade desc
其实答案就是这个
handthing 2010-09-20
  • 打赏
  • 举报
回复
楼主思路错了。
qishihenwunai 2010-09-19
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 sinpoal 的回复:]
select * from table_name order by score asc grade desc
[/Quote]
可以吗?
zysnba 2010-09-18
  • 打赏
  • 举报
回复
都要学好好的学习啊
王向飞 2010-09-18
  • 打赏
  • 举报
回复
...
ningweidong 2010-09-18
  • 打赏
  • 举报
回复
select * from tb order by 成绩 ASC,班级 DESC
wuguoxian001 2010-09-18
  • 打赏
  • 举报
回复
select A.UID,B.CLASS from t as a,t as b order by a.uid desc,b.class asc
试一试会有什么后果 自己想的~~~~~~~
david0927cs2006 2010-09-18
  • 打赏
  • 举报
回复
select *
from tb
order by 成绩,班级 DESC
bobo_msdn 2010-09-18
  • 打赏
  • 举报
回复
路过!
gdk123 2010-09-17
  • 打赏
  • 举报
回复
select Classid,score from
(select id=row_number()over (order by Classid ASC),Classid from tb ) a inner join
(select id=row_number()over (order by score deSC),score from tb ) b
on a.id=b.id
pengpeng409 2010-09-17
  • 打赏
  • 举报
回复
select * from score order by banji desc,chengji
sinpoal 2010-09-16
  • 打赏
  • 举报
回复
select * from table_name order by score asc grade desc
cxmcxm 2010-09-16
  • 打赏
  • 举报
回复
用order by 成绩 desc,班级
kongdie 2010-09-16
  • 打赏
  • 举报
回复
太低级了,不作回答。。。
abuying 2010-09-16
  • 打赏
  • 举报
回复

--使用rank函数,在重值的情况下,不会同名,连续性。
select uid,class from
(select id=Rank()over (order by uid ASC),uid from tb ) a inner join
(select id=rank()over (order by class deSC),class from tb ) b
on a.id=b.id
njlywy 2010-09-16
  • 打赏
  • 举报
回复
Select * form 表名 order by 成绩,班级 desc
加载更多回复(22)

34,575

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧