sql server order by 的一些高级用法
SQL SERVER数据库中order by的一些高级用法
本文章属于转载文章,原博客地址为:https://blog.csdn.net/dieyingao/article/details/4196142
先创建一个表
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 |
一:查询结果如下的解决方案
即要求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'
二:查询要求指定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()
四:有一表ab有列i,其中数据如下:
i varchar(10)
id | no |
---|---|
a | 1 |
a | 10 |
a | 101 |
a | 5 |
p | 4 |
p | 41 |
p | 5 |
现在要求列i中数据先按字母排序,再按数字排序,效果如下
i varchar(10)
id | no |
---|---|
a | 1 |
a | 5 |
a | 10 |
a | 101 |
p | 4 |
p | 5 |
p | 41 |
a 1
a 5
a 10
a 101
p 4
p 5
p 41
解决方案
select * from ab order by left(i,1),convert(int,substring(i,2,8000))
sql server order by 的一些高级用法相关推荐
- SQL Server 中 with tmp 临时表的用法
SQL Server 中 with tmp 临时表的用法 ----------with临时表用法,有时候采用临时表比采用in的效率更高,避免了全表扫描. 实例中实现了查询普通题.大题.子题目的sql ...
- oracle 数据库中order by 的一些高级用法
oracle数据库中order by用法 oracle数据库中order by的一些高级用法 现有一个表,表内容如下: 以下的操作都是对该表进行的操作 1.按照名称排序(默认为升序) 实现代码: se ...
- SQL Server应用程序中的高级SQL注入[转]
SQL Server应用程序中的高级SQL注入[从A.Z的POST里转载,经过整理] 作者:Chris Anley[chris@ngssoftware.com] An NGSSoftware Insi ...
- oracle12c order by,oracle 数据库中order by 的一些高级用法
oracle数据库中order by用法 oracle数据库中order by的一些高级用法 现有一个表,表内容如下: 以下的操作都是对该表进行的操作 1.按照名称排序(默认为升序) 实现代码: se ...
- 42000[SQL Server]ORDER BY子句中的列无效,该列没有包含在聚合函数或GROUP BY 子句
[Err] 42000 - [SQL Server]ORDER BY 子句中的列 "t_xxx.inputDate" 无效,因为该列没有包含在聚合函数或 GROUP BY 子 错误 ...
- mysql的组内排序生成序号_sql 分组查询,组内排序, 组内添加序号 (SQL Server 排序函数 ROW_NUMBER和RANK 用法总结)...
下面的例子和SQL语句均在SQL Server 2008环境下运行通过,使用SQL Server自带的AdventureWorks数据库. -- 添加序列号 -- 行号用法: ROW_NUMBER() ...
- SQL Server 排序函数 ROW_NUMBER和RANK 用法总结
下面的例子和SQL语句均在SQL Server 2008环境下运行通过,使用SQL Server自带的AdventureWorks数据库. 转载请注明此文原创自 CSDN TJVictor的专栏:ht ...
- MS SQL SERVER 中几个函数的用法
1.STUFF 将第一个参数,从第start位置开始的length个字符(包含第start位置,位置从1开始),用第四个参数替换. Syntax ( character_expression , st ...
- SQL Server应用程序中的高级SQL注入
作者:不详 来源:techtarget http://www.csai.cn 2006年5月11日 摘要:这份文档是详细讨论SQL注入技术,它适应于比较流行的IIS+ASP+SQLSERVER平台.它 ...
- SQL Server中Rowcount与@@Rowcount的用法 和set nocount on 也会更新@@Rowcount
rowcount的用法: rowcount的作用就是用来限定后面的sql在返回指定的行数之后便停止处理,比如下面的示例, set rowcount 10 select * from 表A 这样的查询只 ...
最新文章
- Android内存管理之道
- Ceph分布式存储实战1.4 Ceph快速安装
- python爬虫赚钱的途径-如何用爬虫技术赚钱?
- eclipse总是运行上一个程序结果
- 最简单的视音频播放演示样例5:OpenGL播放RGB/YUV
- java map 输入 查询 修改_map的查询和修改方法
- asp.net hessian + android hessdroid
- 11.4 优化拆分和合并(region)
- (转)常用英语100句
- 阁下可知文言编程之精妙?文言文亦能编程!此诚年度最骚语言也,数天6K星...
- 【手写dubbo-2】超详细!netty实现群聊、私聊
- 趋势科技4月移动客户端病毒报告
- oracle rman delete backupset,RMAN Crosscheck后delete obsolete遇到RMAN-06091的解决
- NodeJS 中上传图片,并且在数据库中保存图片地址
- java验证密码_java实现验证用户账号密码的功能
- 银行网点管理转型专家
- 科软分数线狂降53分!凡是隔壁却。。。
- linux磁盘分区题目,Linux练习例题(附答案)
- PCL——超体素(SuperVoxel)、超体聚类分割
- 美军如何在不可信设备上安全访问国防部网络?
热门文章
- Python3.8场景式编程学习与训练- 第1章 入门基础 沙箱技术与虚拟环境创建
- linux cad 安装教程视频,Ubuntu18.04安装FreeCAD教程
- Shashlik Cooking(思维)
- VGG19图像风格迁移
- JS设计模式 - 单例模式
- 群晖7.X版安装cpolar内网穿透套件
- 苹果手机各种尺寸详细表苹果X、苹果XS、苹果XR、苹果XSMax、苹果11、苹果11 Pro、苹果 11 Pro Max 、苹果12、苹果12mini、苹果 12 Pro Max、苹果12pro 尺寸
- AD16 禁止联网操作
- 终端上网_TP-Link企业路由器IPv6上网配置指导
- 常识:如何从大陆拨打国际长途电话到境外的方法