在t-sql中订购多个列
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在t-sql中订购多个列相关的知识,希望对你有一定的参考价值。
我有一个教室的桌子,有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进行排序。有没有人可以帮助我?
答案
试试这个查询。
首先使用Asc然后再使用Desc。
Select * from students order by Name ASC, Age Desc,
另一答案
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
另一答案
要先按类排序,然后按年龄排序,然后命名:
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
以上是关于在t-sql中订购多个列的主要内容,如果未能解决你的问题,请参考以下文章
T-SQL基于分隔符拆分列并将拆分后的字符串数组输入到多个表列中