跟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))
希望上面提到的知识对你有所提示
当然欢迎交流和指正
author:aierong
blog:http://www.cnblogs.com/aierong
email:aierong@126.com
分享到:
相关推荐
sql server中分布式查询随笔(链接服务器(sp_addlinkedserver)和远程登录映射(sp_addlinkedsrvlogin)使用
java记录随笔
在 SQL Server 2005 中查询表结构及索引 sql server 2005中的DDL触发器 在 SQL Server 2005 中使用表值函数来实现空间数据库 SQL Server 2005的30个最重要特点 同时安装sql2000和sql2005的经验 类如何与界面绑定 在...
在业务系统开发中,对表格记录的查询、分页、排序等处理是非常常见的,在Web开发中,可以采用很多功能强大的插件来满足要求,且能极大的提高开发效率,本随笔介绍这个bootstrap-table是一款非常有名的开源表格插件,...
生活随笔学习总结.doc
生活随笔学习总结.docx
两者之间的差别较小,所以我会先让生对教室 电脑中的xp系统有一定的了解,然后针对每课的教材内容和机房的win10系统对比,通过 对比总结的方法了解不同系统环境中的操作差异。如第三课文件和文件夹的查找,打开 搜索...
开学第一周值周总结随笔.docx
中班教育随笔记录《“爱心树”的魔力》.doc
高中随笔,高中随笔200字(3篇).doc
高中随笔,高中随笔200字(3篇)精选.doc
中班教育随笔记录《音乐教学中的几点反思》.doc
该篇随笔主要使用功能按钮的方式移动收藏记录,功能虽然实现的还算不错,不过文章出来后,有读者同行指出可以利用直接拖动的方式实现排序更方便,因此对其中列表记录的排序进行了研究,从而介绍了如何利用Sortable...
小班教师教育随笔《别让孩子在抱怨中成长》.doc
本随笔主要是对初学者通过ADO.NET连接数据库的步骤(刚开始我也诸多不顺,所以总结下,让初学者熟悉步骤) 1、打开VS新建一个项目(这里的VS版本不限,建项目都是一样的步骤) VS2010版本如图: VS2013版本如图:...
中班教育随笔记录200篇.doc
教师随笔-小班教师政治随笔5篇.docx
数学计划总结认识人民币教学随笔.doc
母爱高中随笔.doc