学习目标

对数据库中的数据进行排序

关键字:ORDERBY、ASC和DESC

内容结构

五、排序数据

5.1 升序排序

使用ORDER BY子句为SELECT语句添加排序。一般格式如下所示:

SELECT *columnlist*
FROM tablelist
ORDER BY *columnlist*

关键字SELECT和ORDER BY后边的斜体columnlist表示可以列出任意多个列。

在下面的一些排序示例中,将使用Salespeople表中的数据:

SalespersonID FirstName LastName
1 Gregory Brown
2 Carla Brown
3 Natalie Lopez
4 Connie King

特殊关键字ASC表示升序(ascending)。这个关键字完全是可选的,因为所有排序默认都是升序排列。

如下所示的SELECT语句,使用了ASC语句,返回的数据与不使用ASC语句的返回数据相同。

SELECT
FirstName,
LastName
FROM Salespeople
ORDEY BY FirstName ASC

检索到的数据如下所示:

FirstName LastName
Carla Brown
Connie King
Gregory Brown
Natalie Lopez

5.2 降序排序

关键字DESC的排序顺序与ASC相关,它是降序的(descending)。例如:

SELECT
FirstName,
LastName
FROM Salespeople
ORDEY BY FirstName DESC

检索到的数据如下所示:

FirstName LastName
Natalie Lopez
Gregory Brown
Connie King
Carla Brown

5.3 根据多列来排序

SELECT语句中可以添加多个排序列,如下所示:

SELECT
FirstName,
LastName
FROM Salespeople
ORDEY BY LastName, FirstName

列的顺序很重要,LastName列是主要排序值,列出的任何其他列,将会成为第2排序值、第3排序值等。

检索到的数据如下所示:

FirstName LastName
Carla Brown
Gregory Brown
Connie King
Natalie Lopez

5.4 根据计算字段来排序

直接在ORDER BY子句中指定计算字段,如下所示:

SELECT
FirstName,
LastName
FROM Salespeople
ORDEY BY LastName + FirstName

数据的排序与5.3节中的示例相同。

5.5 排序序列

每个数据库都允许用户指定或定制排序规则(collation)设置,该设置描述了数据排序的细节。这种设置一般会遵循3个原则:
(1)首先,当数据以升序排列时,带有NULL值的数据最先出现,在NULL值后边是数字,然后是字符。当以降序排序时,字符最先,然后是数字,最后是NULL值。
(2)其次,对于字符数据,通常不区分大小写
(3)最后,对于字符数据,从左到右来计算组成该值的单个字母

5…6 小结

本节主要介绍了按照特定顺序对数据进行排序的基本可能性,介绍如何对多个列进行排序,用计算字段进行排序,最后介绍了一些特殊的排序,特别是数据中有NULL值以及字符列中有数字的情况。

【SQL系列学习(五)】相关推荐

  1. 第十三章 使用动态SQL(五)

    文章目录 第十三章 使用动态SQL(五) 从结果集中返回特定的值 %Print()方法 %GetRow()和%GetRows()方法 rset.name属性 第十三章 使用动态SQL(五) 从结果集中 ...

  2. 2021年大数据Flink(三十八):​​​​​​​Table与SQL ​​​​​​案例五 FlinkSQL整合Hive

    目录 案例五 FlinkSQL整合Hive 介绍 集成Hive的基本方式 准备工作 1.添加hadoop_classpath 2.下载jar并上传至flink/lib目录 3.修改hive配置 4.启 ...

  3. 【数据分析】关于学习SQL的五个常见问题?

    对从事数据工作的小伙伴来说,SQL几乎是必备技能,写得一手好SQL说明你是一个合格的'取数民工'. SQL如何从菜鸟到高手呢,一般分三步走: 熟悉基本的增删改查语句及函数,包括select.where ...

  4. SQL进阶五:SQL完整性约束

    完整性约束用于增强数据的完整性,Oracle提供了5种完整性约束: Check NOT NULL Unique Primary Foreign key 完整性约束是一种规则,不占用任何数据库空间.完整 ...

  5. 【转】一步一步学Linq to sql(五):存储过程

    普通存储过程 首先在查询分析器运行下面的代码来创建一个存储过程: create proc sp_singleresultset as set nocount on select * from cust ...

  6. PL/SQL开发五年工作经验精典实例

    1. minus(差集)与intersect(交集) minus指令是运用在两个SQL语句上.它先找出第一个SQL语句所产生的结果,然后看这些结果有没有在第二个SQL语句的结果中,如果有的话,那这一笔 ...

  7. sql 多表多行模糊查询_从零开始学习SQL(五)多表查询

    经过之前的学习,现在我们已经对查询有了一定的了解,但是我们目前的所有查询都只能找到在一张表中的数据,但如果我们需要寻找分布在多张表格中的数据时,这种之前的查询就做不到了,这时就需要引入一种新的查询方法 ...

  8. Spark SQL(五)之数据加载与存储

    一.数据加载 (1)默认数据源(parquet) 最简单加载数据的方式,所有操作都使用默认数据源(parquet).如果指定默认数据源需要配置 spark.sql.sources.default参数. ...

  9. 数据库 数据库SQL语句五

    集合运算union 并集(两个集合如果有重复部分,那么只显示一次重复部分) union all 并集(两个集合如果有重复部分,那么重复部分显示两次) intersect 交集 minus 差集--查询 ...

最新文章

  1. Vista光线效果photoshop教程
  2. 原型链Object的一些方法
  3. Sound recording and encoding in MP3 format.
  4. CentOS7.5安装Tigervnc-server
  5. [转载] Python中字符串的处理方法
  6. pythonchallenge之C++学习篇-01
  7. 关于Java中的final关键字
  8. delphi对比易语言_易语言转换delphi 易语言编程100例
  9. 60道SCJP考试真题精解
  10. MySQL数据库基础理论
  11. 什么软件可以编辑PDF文件
  12. 华为云计算08—灾备
  13. linux nic cpu 10%,cpu – NIC中的描述符概念
  14. 如何高效进行大规模分类?
  15. win10 Edge关闭smartscreen筛选器
  16. 微信小程序之左右布局
  17. 中国 CA 市场 分析
  18. P1489 猫狗大战
  19. Java第十一天笔记01——多线程编程
  20. php威客网,最新带支付宝支付接口的PHP威客任务网站完整版源码破_界面漂亮整洁...

热门文章

  1. TIMO后台管理系统—基于SpringBoot开发
  2. 前人栽树,后人乘凉,这棵二叉树早已枝繁叶茂,快来感受树荫下的清凉吧!!
  3. pythonturtle画小白兔_使用Python+turtle绘制动画重现龟兔赛跑现场
  4. 2008春晚诗朗诵《心里话》之程序员版(转)
  5. 4-CNN-demo-0503-GroupNorm-分组归一化
  6. PIXEL 2XL刷机指南(Android11更新)
  7. Java8新特性——Date Time API
  8. 浅谈Substance painter/Designer软件
  9. 阅读分享:Utilizing BERT Intermediate Layers for ABSA and NLI
  10. Blender简单卡通材质体现