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,')