order by常用的使用方式我就不提了 项目的需求千变万化 –先创建一个表 –往表中插入数据 –查询效果如下: –解决方案1 –解决方案2,并且每组再按照id降序排列 –解决方案3 ii. –解决方案 iii. –解决方案 –解决方案
让我们看看下面几个怪排序需求
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
–利用函数CHARINDEX
select * from ai
order by charindex(no,4,1,2)
–利用函数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
–利用UNION 运算符
select * from ai
where no=4
union all
select * from ai
where no=1
union all
select * from ai
where no=2
–查询要求指定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
–查询要求所有行随机排序
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))
sql server中order by部分使用方式_数据库技巧
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » sql server中order by部分使用方式_数据库技巧
相关推荐
-      sql语句中的判断功能的使用方法
-      sql语句中的判断功能的使用方法
-      SQL语言中去掉小数点有效数字后面的所有0
-      ASP连接各种数据库的代码
-      在sql语句中实现md5功能
-      给access数据库减肥
-      asp连接access数据库代码(2)
-      更改 SQL Server 登录模式