我有一个教室的桌子,有3列:姓名,班级和年龄。什么时候
Select * from students
显示这些值
Name | Class | Age
John | D | 7
Mary | A | 10
Jenny | B | 9
Peter | D | 7
我想用这些条件对值进行排序 - 首先,按年龄排序DESC - 如果有更多2人拥有相同的年龄,请按名称排序ASC
我使用这些命令
Select * from students order by Age Desc, Name ASC .
但它也没有对Class进行排序。有没有人可以帮助我?
答案 0 :(得分:0)
尝试此查询。
首先使用Asc然后再使用Desc。
Select * from students order by Name ASC, Age Desc,
答案 1 :(得分:0)
declare @tab table(Name varchar(30), Class char(1), Age int )
insert into @tab
select 'John' , 'D' , 7
union all
select 'Mary' , 'A' , 10
union all
select 'Jenny' , 'B' , 9
union all
select 'Peter' , 'D' , 7
select * from @tab order by Age desc,name asc
Name Class Age
Mary A 10
Jenny B 9
John D 7
Peter D 7
答案 2 :(得分:0)
首先按类排序,然后按年龄排序,然后命名:
Select Name, Class, Age
FROM students
ORDER BY class ASC, Age DESC, Name ASC;
应输出:
Name | Class | Age
Mary | A | 10
Jenny | B | 9
John | D | 7
Peter | D | 7
首先按年龄排序,然后按类排序,然后命名:
Select Name, Class, Age
FROM students
ORDER BY Age DESC, class ASC, Name ASC;
应该输出相同的内容,因为提供的数据使用此替代标准的排序方式相同。
Name | Class | Age
Mary | A | 10
Jenny | B | 9
John | D | 7
Peter | D | 7