排序函数和in排序

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

猜你喜欢

转载自blog.csdn.net/lujichao520/article/details/46843459