select
*
from
[Test].[dbo].[Sort]
- - 分组排名,没有并列的名次
select id, name ,age, case when age is not null then row_number() over(partition by id order by age desc )
else null end as rank
from [Test].[dbo].[Sort]
- - 分组排名,有并列的名次不连续
select id, name ,age, case when age is not null then rank() over(partition by id order by age desc )
else null end as rank
from [Test].[dbo].[Sort]
- - 分组排名,有并列的名次连续
select id, name ,age, case when age is not null then dense_rank() over(partition by id order by age desc )
else null end as rank
from [Test].[dbo].[Sort]
- - in 排序
select *
from [ User ]
where UserID in ( 50 , 100 , 40 , 200 , 70 )
order by charindex( ',' + ltrim(UserID) + ',' , ',50,100,40,200,70,' )
- - 分组排名,没有并列的名次
select id, name ,age, case when age is not null then row_number() over(partition by id order by age desc )
else null end as rank
from [Test].[dbo].[Sort]
- - 分组排名,有并列的名次不连续
select id, name ,age, case when age is not null then rank() over(partition by id order by age desc )
else null end as rank
from [Test].[dbo].[Sort]
- - 分组排名,有并列的名次连续
select id, name ,age, case when age is not null then dense_rank() over(partition by id order by age desc )
else null end as rank
from [Test].[dbo].[Sort]
- - in 排序
select *
from [ User ]
where UserID in ( 50 , 100 , 40 , 200 , 70 )
order by charindex( ',' + ltrim(UserID) + ',' , ',50,100,40,200,70,' )