Order by 在我们日常的数据库开发生活中是出镜率灰常高的。

order by 的作用就是用于对查询出来的结果进行排序~对啊~人家就是这么接地气~比如按发生时间啊,首字母啊之类的都是相当常见。

今天主要分享一下order by 的用法和样例。

常规用法

CREATE TABLE #Tmp1(
ID INT IDENTITY,
Col1 NVARCHAR(50),
Col2 NVARCHAR(max)
) INSERT INTO #Tmp1
( Col1 ,Col2)
VALUES (N'AAA',REPLICATE('AAA',5000 ))
,( N'aaa',REPLICATE('aaa',5000 ))
,(N'aAA',REPLICATE('aAA',5000 ))
,(N'aaA',REPLICATE('aaA',5000 )) SELECT *
FROM #Tmp1
ORDER BY ID

这个是最简单的~然后如果我们想奇数优先,偶数殿后~这个就用到了order by 里面的表达式技能~如

SELECT *
FROM #Tmp1
ORDER BY CASE WHEN ID%2 > 0 THEN 1 ELSE 2 END, ID

支持表达式~无论你是想要在order by 里面求和还是乘积,都通通可以满足你的要求~但是有一点,就是数据类型一致,起码是可以隐式转换成一致╮(╯_╰)╭。不然,1和a 谁大呢?

然后看下我的例子~虽然都是aaa,当然罗,大小写是不一样的,但是通常在我们默认的排序里面呢,大小写是不区分,a 和 A是一个人。如果要加上大小写排序罗,那就在order by 后面引用排序序列就好了

排序规则排序参考:https://msdn.microsoft.com/zh-cn/library/ms143726(v=sql.120).aspx

SELECT *
FROM #Tmp1
ORDER BY Col1 COLLATE Azeri_Latin_100_CS_AI ASC

但是有一些类型是是无法排序的,比如说ntext,text ,image ,xml ,地理类型 这些类型都无法使用 order by 进行排序。

然而,在2012之后的版本,sql server 提供了便捷的查询分页语句 Offset  fetch 语句 (然而好像mysql 之类的一早支持了这种写法,但是性能上面并没有比对过)

当我们取用前2行的写法,比之前写了一堆的分页语句在开发上确实便捷了好多好多

SELECT *
FROM #Tmp1
ORDER BY Col2 COLLATE Azeri_Latin_100_CS_AI ASC
OFFSET 0 ROWS
FETCH NEXT 2 ROWS only

有2点注意

1、offset 从0 开始,并不是1

2、如果offset 比 总返回行数多,将不返回任何行

谢谢又看我一本正经の胡说八道~祝大家新年继续快乐

今天说一下Order by 这个常规东西~的更多相关文章

  1. Git的基本使用方法和安装&心得体会

    1. git的安装和github的注册.代码托管.创建organization.邀请member. (1)git的安装 因为我电脑是windows系统,所以下载的是git for windows.在官 ...

  2. [转]NHibernate之旅(9):探索父子关系(一对多关系)

    本节内容 引入 NHibernate中的集合类型 建立父子关系 父子关联映射 结语 引入 通过前几篇文章的介绍,基本上了解了NHibernate,但是在NHibernate中映射关系是NHiberna ...

  3. NHibernate教程(9)一1对n关联映射

    本节内容 引入 NHibernate中的集合类型 建立父子关系 父子关联映射 结语 引入 通过前几篇文章的介绍,基本上了解了NHibernate,但是在NHibernate中映射关系是NHiberna ...

  4. ED3 flash 、OBP flash

    海力士.东芝等ED3 NAND Flash ED3的TLC编程规则相对于OBP来讲会简单许多,因为ED3的编程规则非常有规律,很容易掌握,ED3的每个WL页数量是固定的. ED3在对行地址的定义上与O ...

  5. 为什么说JAVA中要慎重使用继承 C# 语言历史版本特性(C# 1.0到C# 8.0汇总) SQL Server事务 事务日志 SQL Server 锁详解 软件架构之 23种设计模式 Oracle与Sqlserver:Order by NULL值介绍 asp.net MVC漏油配置总结

    为什么说JAVA中要慎重使用继承   这篇文章的主题并非鼓励不使用继承,而是仅从使用继承带来的问题出发,讨论继承机制不太好的地方,从而在使用时慎重选择,避开可能遇到的坑. JAVA中使用到继承就会有两 ...

  6. 来科普下游标(MSSQL)这东西。。。

    刚刚接到一个面试电话,对头的先生问我懂不懂触发器和存储过程,当时是觉得有些好笑,毕竟“视图.触发和存储”是咱数据库工程师的吉祥三宝,怎么可能不认识?只是稍后他还问了下游标这东西,仔细想想我是不常使用C ...

  7. MySQL的常规操作

    MySQL的常规知识 show 查看数据库 show databases; 查看表 存在的所有表 show tables; 创建表的命令 show create table table_name; 表 ...

  8. 渗透测试常规思路分析-FREEBUF

    最基础但练得好最后也非常厉害 1.  主要由于服务器配置等原因造成的信息泄露 常用google ,bing等搜索工具,轻量级的搜索出一些遗留后门,不想被发现的后台入口,中量级的搜索出一些用户信息泄露, ...

  9. U3D sorting layer, sort order, order in layer, layer深入辨析

    1,layer是对游戏中所有物体的分类别划分,如UIlayer, waterlayer, 3DModelLayer, smallAssetsLayer, effectLayer等.将不同类的物体划分到 ...

随机推荐

  1. SharedPreferences写入和读出数据

    Android中有很多方法存储数据,如SharedPreferences.SQLite数据库等.简单数据的存储适用SharedPreferences. 本文使用SharedPreferences写入和 ...

  2. Quartz任务调度器

    在使用jdk的timer时发现无法满足开发需求:即无法在指定的日期进行执行任务. 这便引入一个优秀的开源任务调度框架“quartz”.   这里加入的是quartz-1.8.6版本.Quart的官网: ...

  3. Winjs – 微软开源技术发布的 JavaScript 组件集

    Winjs 是由微软开源技术的开发者推出的一组 JavaScript 组件,包括 ListView.ListView.Tooltip.DatePicker.Ratings 等等,帮助 Web 开发人员 ...

  4. [deviceone开发]-doSpace应用源码开源

    一.简介 这个是我们的一个门户App,能够动态加载示例,查看文档,视频,朋友圈聊天等功能.目前开源供大家参考学习,另外"讨论"里对应的BBS上有详细的文档说明,非常值得大家参考和学 ...

  5. github上比较全的知识

    https://github.com/hawx1993/github-FE-project

  6. 好文要顶之 --- 简单粗暴地理解 JavaScript 原型链

    原型链理解起来有点绕了,网上资料也是很多,每次晚上睡不着的时候总喜欢在网上找点原型链和闭包的文章看,效果极好. 不要纠结于那一堆术语了,那除了让你脑筋拧成麻花,真的不能帮你什么.简单粗暴点看原型链吧, ...

  7. EWS API 2.0读取日历信息-读取内容注意事项

    采用模拟账号的方式读取日历信息,注意下日历的内容读取(Body)读取.代码如下:(采用 EWS API 2.0版本) 1.读取内容前必须设置如下属性:否则会提示:You must load or as ...

  8. iOS 三方库fmdb 的使用

    使用fmdb 做本地数据的存储非常方便, 1. github 上搜索fmdb 下载压缩包 导入到工程中 (如果你的mac 有cocoapod 也可以直接通过cocoapod 添加) 2. 以下代码是通 ...

  9. IOS常用第三方开源类库&组件

    1.AFNetworking AFNetworking 采用 NSURLConnection + NSOperation, 主要方便与服务端 API 进行数据交换, 操作简单, 功能强大, 现在许多人 ...

  10. 怎么让一个项目里swift与OC可以兼容混合开发?

    在苹果推出了swift语言之后,很多人担心OC很快会被取代,但是苹果方面表示2年内不会摒弃OC.但现在也快了啊.有的开发团队已经开始基于swift开发,但是有很多旧的框架还没来得及用swift写出来, ...