sql server中order by部分使用方式

阳光的wwddd

阳光的wwddd

2016-01-29 15:48

sql server中order by部分使用方式,sql server中order by部分使用方式
order by常用的使用方式我就不提了

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

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/sqlserver/)

--先创建一个表
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

--解决方案3
--利用UNION 运算符
select * from ai
 where no='4'
union all
select * from ai
 where no='1'
union all
select * from ai
 where no='2'

ii.
--查询要求指定no='4'排第一行,其他的行随机排序
id          no        
----------- ----------
105         4
105         2
105         1
103         1

--解决方案
select * from ai
 order by case when no='4' then 1
   else 1+rand()
  end

iii.
--查询要求所有行随机排序

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/sqlserver/)

--解决方案
select * from ai
 order by newid()


iiii
--有一表ab有列i,其中数据如下:
i varchar(10)
a1
a10
a101
a5
p4
p41
p5


--现在要求列i中数据先按字母排序,再按数字排序
--效果如下:
a1
a5
a10
a101
p4
p5
p41

--解决方案
select * from ab
 order by left(i,1),convert(int,substring(i,2,8000))

展开更多 50%)
分享

猜你喜欢

sql server中order by部分使用方式

SQLServer
sql server中order by部分使用方式

SQL Server 2008中SQL之WaitFor使用介绍

编程语言 网络编程
SQL Server 2008中SQL之WaitFor使用介绍

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

SQL Server中索引使用及维护

SQLServer
SQL Server中索引使用及维护

使用sql server中的全文索引

SQLServer
使用sql server中的全文索引

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

SQL Server 2000中的触发器使用

编程语言 网络编程
SQL Server 2000中的触发器使用

关于SQL Server中索引使用及维护简介

SQLServer
关于SQL Server中索引使用及维护简介

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

从SQL备份文件中导入现存数据库中

从SQL备份文件中导入现存数据库中

《猎天使魔女2》连招技巧及其它技巧心得

《猎天使魔女2》连招技巧及其它技巧心得
下拉加载更多内容 ↓