SQL---DML---ORDER BY排序检索子句的几种方式

2023-11-19

关系数据库设计理论认为,如果不明确规定排序顺序,则不应该假定检索出的数据的顺序有意义。为了明确地排序用SELECT语句检索出来的数据,可使用ORDER BY子句。

  • 排序一列数据
SELECT 列名1

FROM 表名

ORDER BY 列名2


通常,ORDER BY子句中使用的列将是为显示所选择的列。但是,实际上并不一定要这样,用非检索的列排序数据是完全合法的。默认是ASC,升序排列。

  • 按多个列排序
SELECT 列名1

FROM 表名

ORDER BY 列名2,列名3


经常需要按不止一个列进行数据排序。例如,如果要显示雇员清单,可能希望按姓和名排序(首先按姓排序,然后在每个姓中再按名排序)。如果有多个雇员具有相同的姓,这样做很有用。为了按多个列排序,简单指定列名,列名之间用逗号分开即可。按多个排序的时候,排序的顺序完全按照所规定的进行。也就是仅在多行具有相同的第一列的时候,才会按照第二个进行排序,如果第一列所有值都是唯一的,则不会按照第二列进行排序。


  • 按列位置排序
除了能用列名指出排序顺序外,ORDER BY还支持按相对列位置进行排序。

例:

SELECT prod_id,prod_price,prod_name

FROM Products

ORDER BY 2,3;

2表示清单的第二列,3表示清单的第三列。此技术的好处在于不用重新输入列名。但它也有缺点。首先,不明确给出列名增加了错用列名排序的可能性。其次,在对SELECT清单进行更改时容易错误地对数据进行排序。最后,如果进行排序的列不在SELECT的清单中,显然不能使用这项技术。

  • 指定排序方向
数据排序不限于升序排序(从A到Z)。这只是默认的排序顺序,还可以使用ORDER BY子句以降序(从Z到A)顺序排序。降序是DESC,升序是ASC,升序是默认的。

例:

SELECT prod_id,prod_price,prod_name

FROM Products

ORDER BY prod_price DESC,prod_name;

这时,只对prod_price进行降序排列,而对prod_name升序。

DESC是descending的缩写,ASC是ascending的缩写。

  • 区分大小写和排序顺序
在字典排序顺序中,A被视为与a相同,这是大多数数据库管理系统的默认行为。但是,许多DBMS允许数据库管理员在需要时改变这种行为。如果确实需要改变这种排序顺序,用简单的ORDER BY子句做不到,必须请求数据库管理员的帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQL---DML---ORDER BY排序检索子句的几种方式 的相关文章

随机推荐

  • web socket RFC6455 frame 打包、解包

    ifndef APP WEBSOCKET FRAME H define APP WEBSOCKET FRAME H include memory hpp class buffer struct websocket frame websock
  • 手机文件传云服务器失败怎么回事,为什么百度云上传不了文件 百度云无法上传文件原因解决办法...

    当你在百度云中无法上传文件时 需要考虑两个因素 一是网络问题 二是你的文件内存是否过大 如果两者都没有问题 那么 百度云上传不了文件的原因究竟是什么呢 让我们一起来看看具体原因以及解决办法吧 百度云无法上传文件原因 1 网络状态不好 可能是
  • servlet实现文件上传

    上传文件满足条件 1 需要有个表单 表单里面有个input类型为file的上传域 2 请求方法必须是POST 3 表单需要添加enctype属性 Content Type multipart form data 告知服务器提交数据的MIME
  • python常见语法错误

    忘记在结构语句后面添加 导致 SyntaxError invalid syntax if else elif for while class class def 使用 而不是 导致 SyntaxError invalid syntax 错误
  • 安装DirectXSDK时提示Error Code s1023

    向开发DirectX 3D游戏 就安装DirectX最新版 安装时遇到Error Code s1023 试了好多办法都不行 关掉所有程序还是不行 感谢伟大的Google在一个英文网站上提到如果安装了Microsoft Visual C 20
  • 《程序员的自我修养--链接、装载与库》学习笔记(一)

    本系列文章是 程序员的自我修养 链接 装载与库 电子工业出版社 一书的学习摘录笔记 本文是书中1 1至1 4部分 文章目录 基础概念 硬件 软件 基础概念 include
  • 前端开发必备

    Chrome调试css chrome开发工具workspace使用 chrome调试less
  • 源码编译安装opencv4.6.0,别的版本也行

    1 下载opencv4 6 0 系统 ubuntu 1804 64位 点我下载opencv 4 6 0 https codeload github com opencv opencv zip refs tags 4 6 0 指令下载 推荐
  • 实现三角形类Tri,数据成员包含三个Point类对象,实现判断两个三角形全等

    实现三角形类Tri 数据成员包含三个Point类对象 实现从屏幕输入三个点的坐标 用于构造Tri的一个对象 实现函数Cong 判断两个三角形是否全等 include
  • ffmpeg 判断关键帧

    当mp4的profile为high的时候 avpacket 1并不能判断是否是关键帧 很多不是的也被误判断成关键帧了 具体做法应该是 进一步判断字节 int is keyframe h264 AVPacket pkt printf 02x
  • 什么是javascript内存泄漏?以及解决方法

    什么是javascript内存泄漏 以及解决方法 一 什么是javascript内存泄漏 二 常见的内存泄漏 1 意外的全局变量 通常是变量未被定义或者胡乱引用了全局变量 2 计时器 3 闭包 4 事件监听未被移除 5 console lo
  • ESP32-AT指令学习笔记

    目录 前言 一 硬件和软件准备 二 使用步骤 1 下载固件 2 接线 总结 前言 针对 ESP32 芯片 实现了一些常用的 AT 指令集 链接地址为 ESP32 AT指令集 该指令集可用于用户 MCU PC 同 ESP32 进行交互 也适用
  • 数据库系统概论第五版课后习题答案第七章

    第七章 数据库设计 1 试述数据库设计过程 答 这里只概要列出数据库设计过程的六个阶段 l 需求分析 2 概念结构设计 3 逻辑结构设计 4 数据库物理设计 5 数据库实施 6 数据库运行和维护 这是一个完整的实际数据库及其应用系统的设计过
  • Spring总结

    1 Spring概述 1 1 简介 Spring 春天 gt 给软件行业带来了春天 2002年 Rod Jahnson首次推出了Spring框架雏形interface21框架 2004年3月24日 Spring框架以interface21框
  • 企业及个人如何有效防护网络攻击

    企业及个人如何有效防护网络攻击 众所周知 网络攻击手段有很多 让人眼花缭乱 防不胜防 其带来的危害和影响也非常之大 因此 如何防范网络攻击 成为大家关注的重点 本文为大家介绍一些防范网络攻击的小技巧 快来看看吧 1 对于个人来说 密码不少于
  • 赛事

    第25届中国机器人及人工智能大赛成功举办 2023年6月13日至14日 第二十五届中国机器人及人工智能大赛于海南科技职业大学成功举办 大赛由中国人工智能学会主办 共有来自清华大学 哈尔滨工业大学 中国科学技术大学 西安交通大学等500多所高
  • 【华为OD统一考试A卷

    华为OD统一考试A卷 B卷 新题库说明 2023年5月份 华为官方已经将的 2022 0223Q 1 2 3 4 统一修改为OD统一考试 A卷 和OD统一考试 B卷 你收到的链接上面会标注A卷还是B卷 请注意 根据反馈 目前大部分收到的都是
  • MATLAB实现CNN-LSTM卷积长短期记忆神经网络数据分类预测

    作者简介 热爱科研的Matlab仿真开发者 修心和技术同步精进 matlab项目合作可私信 个人主页 Matlab科研工作室 个人信条 格物致知 内容介绍 一种基于长短时记忆网络和卷积神经网络的文本分类方法 首先 利用词向量将输入文本进行向
  • Win7 64位操作系统连接HP 1010打印机完美解决方案

    工作的第一天就遇到问题 新电脑无法连接老式的HP1010打印机 64位Windows7系统无法连接32位XP网络共享打印机 而32位WIN7就可以 这里分享个简单的解决方法 先去下载一个64位的打印机驱动 然后添加打印机 注意这里要添加的是
  • SQL---DML---ORDER BY排序检索子句的几种方式

    关系数据库设计理论认为 如果不明确规定排序顺序 则不应该假定检索出的数据的顺序有意义 为了明确地排序用SELECT语句检索出来的数据 可使用ORDER BY子句 排序一列数据 SELECT 列名1 FROM 表名 ORDER BY 列名2