表中记录查询排序随笔(sql server中order by使用方式小总结)
2005-03-02 10:14
811 查看
相关文章导航
Sql Server2005 Transact-SQL 新兵器学习总结之-总结
Flex,Fms3相关文章索引
FlexAir开源版-全球免费多人视频聊天室,免费网络远程多人视频会议系统((Flex,Fms3联合开发))<视频聊天,会议开发实例8>
跟DB打交道,用得最多的是查询,既然查询就会有查询记录排序问题,我一直通过order by来解决,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
--利用函数case
select * from ai
order by case when no='4' then 1
when no='1' then 2
when no='2' then 3
end
--解决方案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.
--查询要求所有行随机排序
--解决方案
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))
希望上面提到的知识对你有所提示
当然欢迎交流和指正
收藏与分享
收藏到QQ书签
添加到百度搜藏
添加到雅虎收藏
RSS订阅我 什么是RSS?
东莞.net俱乐部
欢迎您的加入
Sql Server2005 Transact-SQL 新兵器学习总结之-总结
Flex,Fms3相关文章索引
FlexAir开源版-全球免费多人视频聊天室,免费网络远程多人视频会议系统((Flex,Fms3联合开发))<视频聊天,会议开发实例8>
跟DB打交道,用得最多的是查询,既然查询就会有查询记录排序问题,我一直通过order by来解决,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
--利用函数case
select * from ai
order by case when no='4' then 1
when no='1' then 2
when no='2' then 3
end
--解决方案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.
--查询要求所有行随机排序
--解决方案
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))
希望上面提到的知识对你有所提示
当然欢迎交流和指正
收藏与分享
收藏到QQ书签
添加到百度搜藏
添加到雅虎收藏
RSS订阅我 什么是RSS?
东莞.net俱乐部
欢迎您的加入
相关文章推荐
- SQL 表中记录查询排序随笔(sql server中order by使用方式小总结)
- sql server中分布式查询随笔(链接服务器(sp_addlinkedserver)和远程登录映射(sp_addlinkedsrvlogin)使用小总结)
- sql server中分布式查询随笔(链接服务器(sp_addlinkedserver)和远程登录映射(sp_addlinkedsrvlogin)使用小总结)
- sql server中分布式查询随笔(链接服务器(sp_addlinkedserver)和远程登录映射(sp_addlinkedsrvlogin)使用小总结)
- [导入]sql server中分布式查询随笔(链接服务器(sp_addlinkedserver)和远程登录映射(sp_addlinkedsrvlogin)使用小总结)
- sql server中分布式查询随笔(链接服务器(sp_addlinkedserver)和远程登录映射(sp_addlinkedsrvlogin)使用小总结)
- 解决SQL Server查询中使用Union或Union All后Order by排序无效的bug(好神奇啊!!)
- sql server中分布式查询随笔(链接服务器(sp_addlinkedserver)和远程登录映射(sp_addlinkedsrvlogin)使用小总结)
- 基于Metronic的Bootstrap开发框架经验总结(16)-- 使用插件bootstrap-table实现表格记录的查询、分页、排序等处理
- sql server中分布式查询随笔(链接服务器(sp_addlinkedserver)和远程登录映射(sp_addlinkedsrvlogin)使用小总结)
- sql server中分布式查询随笔(链接服务器(sp_addlinkedserver)和远程登录映射(sp_addlinkedsrvlogin)使用小总结)
- sql server中分布式查询随笔(链接服务器(sp_addlinkedserver)和远程登录映射(sp_addlinkedsrvlogin)使用小总结)
- sql server中分布式查询随笔(链接服务器(sp_addlinkedserver)和远程登录映射(sp_addlinkedsrvlogin)使用小总结)
- sql server中分布式查询随笔(链接服务器(sp_addlinkedserver)和远程登录映射(sp_addlinkedsrvlogin)使用小总结)
- sql server中分布式查询随笔(链接服务器(sp_addlinkedserver)和远程登录映射(sp_addlinkedsrvlogin)使用小总结)
- sql server 根据指定字段排序编号 update 与 order by 联合使用
- Jxls导出excel的若干方式总结(六)-- 分sheet导出查询记录,每条记录一个sheet
- Sql Server 2005/2008 SqlCacheDependency查询通知的使用总结
- SQL Server使用脚本对查询结果进行排序
- SQL Server数据库--》top关键字,order by排序,distinct去除重复记录,sql聚合函数,模糊查询,通配符,空值处理。。。。