IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> SQL Server-排序检索数据 -> 正文阅读

[大数据]SQL Server-排序检索数据

该文章中使用的数据表创建于我的另一篇博客

点击前往

1、排序数据

如果不排序,数据一般将以他在表中出现的顺序显示。

关系数据库设计理论认为,

如果不明确规定排列顺序,则不应该假定检索出的数据的顺序有任何意义

为了明确排序用select语句检索出的数据,可使用order by子句。

order by子句取一个或多个列的名字,据此对输出进行排序:

select 身高 from 学生表 order by 身高

执行以上代码后,查询表可得结果:

在这里插入图片描述
由结果可以看出该表进行升序排列

注意:

1、在指定一条order by 子句是,应该保证他是select语句中最后一条子句。如果不是最后一条子句,将会出错。
2、通常,order by 子句中使用的列将是为显示而存在的列,但是,实际上并不一定要这样,用非检索的列排序数据是完全合法的。

2、按多个列排序

为更好展示多个列排序效果,对表的数据进行添加,代码如下:

--为表添加字段

alter table 学生表 add 团员 nchar(1) check(团员 = 1 or 团员 = 0)

--更新数据

update 学生表 set 团员 = 1 where 姓名 ='李明'
update 学生表 set 团员 = 1 where 姓名 ='李红'
update 学生表 set 团员 = 0 where 姓名 ='李亮'
update 学生表 set 团员 = 0 where 姓名 ='大红'
update 学生表 set 团员 = 0 where 姓名 ='小红'
insert 学生表(姓名,性别,身高,团员)
values('杨亮','男',1.75,0)

执行以上代码后,查询表可得结果:

在这里插入图片描述

要按多个列排序,只要指定这些列明,列明之间用逗号隔开即可(就像选择多个列时那样)。

select 团员,身高 from 学生表 order by 团员,身高

执行以上代码后,可得结果:
在这里插入图片描述

在以上的输出结果中,仅在多个行具有相同的团员列值时才对身高进行排序。

如果团员列所有值都是唯一的,则不会按身高列排序

3、按列位置排序

除了能用列名指出排序顺序外,order by 还支持按相对列位置进行排序:

select 姓名,身高,团员 from 学生表 order by 3,2

执行以上代码后,可得结果:
在这里插入图片描述

order by 2,表示按照select清单中的第二个列身高进行排序

order by 3,表示按照select清单中的第三个列团员进行排序

优点:

不用重新输入列名

缺点:

1、不明确给出列名可能造成错用列名排序
2、对select清单进行更改时容易错误地对数据进行排序
3、如果进行排序的列不在select清单中,不能使用这项技术

4、指定排序方向

默认排序序列为升序序列(如果既不指定ASC也不指定DESC,则假定为ASC)

单个列排序

--升序排列
select 身高 from 学生表 order by 身高 asc

--降序排列
select 身高 from 学生表 order by 身高 desc

执行以上代码后,可得结果:
在这里插入图片描述
多个列排序

--多个列排序
select 团员,身高 from 学生表 order by 团员 desc,身高

执行以上代码后,可得结果:
在这里插入图片描述
观察截图可得:

desc关键字只应用到直接位于其前面的列名


select 团员,身高 from 学生表 order by 团员 desc,身高 desc

执行以上代码后,可得结果:
在这里插入图片描述
注意:

如果想在多个列上进行降序排序,必须对每一列指定DESC关键字

5、全部代码

select *from 学生表

--排序数据

select 身高 from 学生表 order by 身高

--为表添加字段

alter table 学生表 add 团员 nchar(1) check(团员 = 1 or 团员 = 0)

--更新数据

update 学生表 set 团员 = 1 where 姓名 ='李明'
update 学生表 set 团员 = 1 where 姓名 ='李红'
update 学生表 set 团员 = 0 where 姓名 ='李亮'
update 学生表 set 团员 = 0 where 姓名 ='大红'
update 学生表 set 团员 = 0 where 姓名 ='小红'
insert 学生表(姓名,性别,身高,团员)
values('杨亮','男',1.75,0)

--按多个列进行排序

select 团员,身高 from 学生表 order by 团员,身高

--按列位置排序

select 姓名,身高,团员 from 学生表 order by 3,2

--升序排列
select 身高 from 学生表 order by 身高 asc

--降序排列
select 身高 from 学生表 order by 身高 desc

--多个列排序
select 团员,身高 from 学生表 order by 团员 desc,身高

select 团员,身高 from 学生表 order by 团员 desc,身高 desc
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-03-16 22:27:35  更:2022-03-16 22:30:25 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 6:22:14-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码