程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> sql server中order by部分使用方式

sql server中order by部分使用方式

編輯:關於SqlServer

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved