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. C#多线程学习笔记

    using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threa ...

  2. Lock的实现之ReentrantLock详解

    摘要 Lock在硬件层面依赖CPU指令,完全由Java代码完成,底层利用LockSupport类和Unsafe类进行操作: 虽然锁有很多实现,但是都依赖AbstractQueuedSynchroniz ...

  3. js 关于日期

    new Date()  获取当前的完整日期 : 如 2016-12-30 new Date().getFullYear() 获取当前的年份 new Date().getMonth() 获取当前的月份( ...

  4. C++析构函数调用异常问题研究

    最近又遇到一个奇葩问题,程序在自己的开发机器和某些机器上运行完好,但是在测试人员的几台机器上运行就直接推出了.开始以为是出现了野指针,因为delete野指针时程序会直接退出.代码翻来覆去过来即便确认没 ...

  5. spring 3.x变通实现@Conditional注解的功能

    在某些情况下,我们要根据当前的系统配置决定是否初始化一个bean,也就是条件性加载,比如本地缓存或者分布式缓存,亦或是采用http实现或者socket实现.在spring 4.x中,可以使用新增的@C ...

  6. 在Hyper-V上安装配置Windows负载均衡NLB

    搭建过程 Hyper-V 是自Windows Server2008 以来提供的虚拟机管理软件,它操作简便,功能也不错,可以方便的在它里面安装各种操作系统,如图所示: 现在,想利用这几台虚拟服务器搭建一 ...

  7. cssSlidy.js 响应式手机图片轮播

    cssSlidy是一款支持手机移动端的焦点图轮播插件,支持标题设置,滑动动画,间隔时间等. 在线实例 实例演示 使用方法 <div id="slidy-container"& ...

  8. EpicEditor – 可嵌入的 JavaScript Markdown 编辑器

    EpicEditor 是一款可以嵌入到网页中的 JavaScript Markdown 编辑器,支持全屏编辑.在线预览.自动保存草稿,离线支持等等.对于开发人员,它提供了一个健壮的API,可以很容易定 ...

  9. 20个最新的照片 PS 技巧,提升摄影水平

    相信很多人都知道 Photoshop 在照片编辑方面的强大,所以几乎每张照片经过 PS 处理后都可以变成一个真正的杰作.这里分享的这组 Photoshop 教程可以帮助你学习到新的照片处理技术.你会发 ...

  10. ABAP--关于ABAP流程处理的一些命令的说明(stop,exit,return,check,reject)

    Stop 命令 使用该命令的程序位置 INITIALIZATION, AT SELECTION-SCREEN, START-OF-SELECTION和GET 事件中 处理说明 1. 当在INITIAL ...