数据库学习笔记3 基本的查询流 2

order by子句对查询结果集进行排序

  • 多列和拼接

多列的方式就很简单了

select firstname,lastname
from person.person
order by lastname,firstname;

这句话表示根据lastnamefirstname两列进行排序,并且是先按照lastname进行排序如果有相同的值就按照firstname进行排序。

拼接很有意思,可以写成这个样子

select
lastname+‘,‘+firstname as fullname
from person.person
order by lastname+‘,‘+firstname;

这是把表达式放在了order by子句中了,当然也可以把order by子句中的表达式换成select子句中的别名fullname

另外还有一种写法是把列的位置写在order by子句中,还不是很了解这样写法的目的,之后应该有更加详细的讲解。

  • 可以使用case

select description,len(description) as textlength from production.productdescription where description like ‘replacement%‘ order by case when left(Description,5)=‘This ‘ then stuff(description,1,5,‘‘) else description end;

这句话的意思是根据description排序,case的作用是如果description值得第一个单词是This就把它截掉。

top谓词

我印象中top的作用很小,也就是查询某一个表里的前几条数据,但是这次知道了还有percentwith ties的存在

  • percent

遇到求百分比结果集的时候可以把top和percent连用

select top(3) percent ... from ....

这样的写法是表示查询前百分之30的数据。

  • with ties

应对查询成绩前三名的同学如果简单的使用 select top(3) ... from 这样的句式其实是有问题的,如果满足条件的数据不只三条,比如说有好几个人并列第三。with ties就是来解决这个问题的。

select top(3) with ties ...from ...

这样的写法表示,如果最后一条有满足条件的数据也包含在查询结果里,所以最终查出来的结果并不一定是3条数据。

原文地址:https://www.cnblogs.com/hoyu/p/8512362.html

时间: 2024-10-18 10:10:07

数据库学习笔记3 基本的查询流 2的相关文章

数据库学习笔记3 基本的查询流 2 select lastname+','+firstname as fullname order by lastname+','+firstname len() left() stuff() percent , select top(3) with ties

order by子句对查询结果集进行排序 多列和拼接 多列的方式就很简单了 select firstname,lastname from person.person order by lastname,firstname; 这句话表示根据lastname和firstname两列进行排序,并且是先按照lastname进行排序如果有相同的值就按照firstname进行排序. 拼接很有意思,可以写成这个样子 select lastname+','+firstname as fullname from

MySQL数据库学习笔记(十)----JDBC事务处理、封装JDBC工具类

首先需要回顾一下上一篇文章中的内容:MySQL数据库学习笔记(九)----JDBC的PreparedStatement接口重构增删改查 一.JDBC事务处理: 我们已经知道,事务的概念即:所有的操作要么同时成功,要么同时失败.在MySQL中提供了Commit.Rollback命令进行事务的提交与回滚.实际上在JDBC中也存在事务处理,如果要想进行事务处理的话,则必须按照以下的步骤完成. JDBC中事务处理的步骤: 1.要取消掉JDBC的自动提交:void setAutoCommit(boolea

MYSQL数据库学习笔记1

MYSQL数据库学习笔记1 数据库概念 关系数据库 常见数据库软件 SQL SQL的概念 SQL语言分类 数据库操作 创建数据库 查看数据库的定义 删除数据库 修改数据库 创建表 数据类型 约束 修改表 表的增删查改 查询 数据库概念 数据库是一种对大量信息进行管理的一种方法. 数据库系统从结构上看,也是可以分为三层的: 物理层:数据实际如何存储 逻辑层:存储的是什么数据,以及数据间是什么关系 试图层:提供给用户的部分数据 关系数据库 目前关于数据库模型最主流的有两种, 一种叫做关系型数据库,这

MySQL数据库学习笔记(十二)----开源工具DbUtils的使用(数据库的增删改查)

[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4085684.html 联系方式:[email protected] [正文] 这一周状态不太好,连续打了几天的点滴,所以博客中断了一个星期,现在继续. 我们在之前的几篇文章中学习了JDBC对数据库的增删改查.其实在实际开发中,一般都是使用第三方工具类,但是只有将之前的基础学习好了,在使用开源工具的

数据库学习笔记(一)

1.在ORACLE里默认只有三个系统用户,ORACLE是通过用户登入.  SYS用户:超级管理员,权限最高,它的角色是DBA.默认密码是change_on_install.具有创建数据库的权限   SYSTEM用户:系统管理员,权限很高,它的角色是DBA operator,默认密码manager.不具有创建数据库的权限!  普通用户(normal),如系统安装时的scott用户,默认密码是tiger.普通用户的权限是SYS用户或SYSTEM用户给的. 在SQL SERVER里是通过WINDOWS

IBatis.Net学习笔记六--再谈查询

在IBatis.Net学习笔记五--常用的查询方式 中我提到了一些IBatis.Net中的查询,特别是配置文件的写法. 后来通过大家的讨论,特别是Anders Cui 的提醒,又发现了其他的多表查询的方式.在上一篇文章中我提到了三种方式,都是各有利弊:第一种方式当数据关联很多的情况下,实体类会很复杂:第二种方式比较灵活,但是不太符合OO的思想(不过,可以适当使用):第三种方式最主要的问题就是性能不太理想,配置比较麻烦. 下面是第四种多表查询的方式,相对第二种多了一点配置,但是其他方面都很好(当然

mybatis学习笔记(11)-多对多查询

mybatis学习笔记(11)-多对多查询 mybatis学习笔记11-多对多查询 示例 多对多查询总结 resultMap总结 本文实现多对多查询,查询用户及用户购买商品信息. 示例 查询主表是:用户表 关联表:由于用户和商品没有直接关联,通过订单和订单明细进行关联,所以关联表:orders.orderdetail.items sql SELECT orders.*, user.username, user.sex, user.address, orderdetail.id orderdeta

mybatis学习笔记(11)-一对多查询

mybatis学习笔记(11)-一对多查询 mybatis学习笔记11-一对多查询 示例 小结 本文实现一对多查询,查询订单及订单明细的信息 示例 sql 确定主查询表:订单表 确定关联查询表:订单明细表 在一对一查询基础上添加订单明细表关联即可. SELECT orders.*, user.username, user.sex, user.address, orderdetail.id orderdetail_id, orderdetail.items_id, orderdetail.item

sybase数据库学习笔记(一)

sybase的基本框架 sybase数据库由系统数据库.用户数据库.数据库设备和辅助文件组成. 1. 系统数据库 sybase数据库是多个数据库结构的数据库管理系统.分为系统数据库和用户数据库. 系统数据库是在安装的时候自动创建的,包括一下内容: master数据库:全面控制和管理用户数据库及sybase上的一切操作 temp数据库:为临时表和其他临时工作空间提供一个存储区域,是公用的 model数据库:为新建的用户数据库提供一个原型 sybsystemproc数据库:存储系统存储过程 其他系统