Welcome

首页 / 数据库 / SQLServer / sql server中order by部分使用方式

sql server中order by部分使用方式2007-05-31 动态网站制作指南 order by常用的使用方式我就不提了

项目的需求千变万化
让我们看看下面几个怪排序需求

--先创建一个表
create table ai(
id int not null,
no varchar(10) not null

go

--往表中插入数据
insert into ai
 select 105,"2"
 union all
 select 105,"1"
 union all
 select 103,"1"
 union all
 select 105,"4"
go

--查询效果如下:
select * from ai
go
id          no        
----------- ----------
105         2
105         1
103         1
105         4

i.
--要求的查询结果如下
--即要求no列的数据按"4","1","2"排列
id          no        
----------- ----------
105         4
105         1
103         1
105         2

--解决方案1
--利用函数CHARINDEX
select * from ai
 order by charindex(no,"4,1,2")

--解决方案2,并且每组再按照id降序排列
--利用函数case
select * from ai
 order by case when no="4" then 1
        when no="1" then 2
                      when no="2" then 3
                 end,id desc