Sql学习第三天——SQL 关于with ties介绍

关于with ties

对于with ties一般是和Top , order by相结合使用的,会查询出最后一条数据额外的返回值(解释:如果按照order by 参数排序TOP n(PERCENT)返回了前面n(pencent)个记录,但是n+1…n+k条记录和排序后的第n条记录的参数值(order by 后面的参数)相同,则n+1、…、n+k也返回。n+1、…、n+k就是额外的返回值)。

实验:

实验用表(PeopleInfo):
复制代码 代码如下:
CREATE TABLE [dbo].[PeopleInfo](
[id] [int] IDENTITY(1,1) NOT NULL,
[name] [nchar](10) COLLATE Chinese_PRC_CI_AS NULL,
[numb] [nchar](10) COLLATE Chinese_PRC_CI_AS NOT NULL,
[phone] [nchar](10) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]

向表中插入数据:
复制代码 代码如下:
insert into peopleinfo([name],numb,phone) values ('李欢','3223','1365255')
insert into peopleinfo([name],numb,phone) values ('李欢','322123','1')
insert into peopleinfo([name],numb,phone) values ('李名','3213112352','13152')
insert into peopleinfo([name],numb,phone) values ('李名','32132312','13342563')

查看插入的全部数据:
复制代码 代码如下:
select * from dbo.PeopleInfo

结果图:

操作步骤1:不用with ties

代码:
复制代码 代码如下:
select top 3 * from peopleinfo order by [name] desc

结果如图:

操作步骤2:用with ties

代码:
复制代码 代码如下:
select top 3 with ties * from peopleinfo order by [name] desc

结果如图:

如果with ties不与top和order by结合使用的错误示范:

操作步骤1:不与order by结合使用,只和top结合使用:

代码:
复制代码 代码如下:
select top 3 with ties * from peopleinfo

错误消息如图:

    操作步骤2:不与top结合使用,只和order by结合使用:

代码:
复制代码 代码如下:
select with ties * from peopleinfo order by [name] desc

错误消息如图:

操作步骤3:不与top结合使用也不与order by结合使用:

代码:
复制代码 代码如下:
select with ties * from peopleinfo

错误消息如图:

时间: 2024-09-26 10:14:19

Sql学习第三天——SQL 关于with ties介绍的相关文章

Sql学习第三天——SQL 关于CTE(公用表达式)的递归查询使用_MsSql

关于使用CTE(公用表表达式)的递归查询----SQL Server 2005及以上版本 公用表表达式 (CTE) 具有一个重要的优点,那就是能够引用其自身,从而创建递归 CTE.递归 CTE 是一个重复执行初始 CTE 以返回数据子集直到获取完整结果集的公用表表达式. 当某个查询引用递归 CTE 时,它即被称为递归查询.递归查询通常用于返回分层数据,例如:显示某个组织图中的雇员或物料清单方案(其中父级产品有一个或多个组件,而那些组件可能还有子组件,或者是其他父级产品的组件)中的数据. 递归 C

PL/SQL学习笔记(三) ——PL/SQL代码编写规则

养成良好的代码编写习惯,PL/SQL代码编写规则: 1.标识符命名规则 1)定义变量时以v_作为前缀,如v_sal 2)定义常量时以c_作为前缀,如c_rate 3)定义游标时,建议使用_cursor作为后缀,如emp_cursor 4)定义异常时,以e_作为前缀,如e_integrity_error 5)定义PL/SQL表类型时,使用_table_type作为后缀,如sal_table_type. 6)定义表变量时,以_table作为后缀,如sal_table 7)同样,定义PL/SQL记录型

Sql学习第三天——SQL 关于with ties介绍_MsSql

关于with ties 对于with ties一般是和Top , order by相结合使用的,会查询出最后一条数据额外的返回值(解释:如果按照order by 参数排序TOP n(PERCENT)返回了前面n(pencent)个记录,但是n+1-n+k条记录和排序后的第n条记录的参数值(order by 后面的参数)相同,则n+1.-.n+k也返回.n+1.-.n+k就是额外的返回值). 实验: 实验用表(PeopleInfo): 复制代码 代码如下: CREATE TABLE [dbo].[

Sql学习第四天——SQL 关于with cube,with rollup和grouping解释及演示

关于with cube ,with rollup 和 grouping 通过查看sql 2005的帮助文档找到了CUBE 和 ROLLUP 之间的具体区别: CUBE 生成的结果集显示了所选列中值的所有组合的聚合.ROLLUP 生成的结果集显示了所选列中值的某一层次结构的聚合. 再看看对grouping的解释: 当行由 CUBE 或 ROLLUP 运算符添加时,该函数将导致附加列的输出值为 1:当行不由 CUBE 或 ROLLUP 运算符添加时,该函数将导致附加列的输出值为 0. 仅在与包含 C

Sql学习第四天——SQL 关于with cube,with rollup和grouping解释及演示_MsSql

关于with cube ,with rollup 和 grouping 通过查看sql 2005的帮助文档找到了CUBE 和 ROLLUP 之间的具体区别: CUBE 生成的结果集显示了所选列中值的所有组合的聚合.ROLLUP 生成的结果集显示了所选列中值的某一层次结构的聚合. 再看看对grouping的解释: 当行由 CUBE 或 ROLLUP 运算符添加时,该函数将导致附加列的输出值为 1:当行不由 CUBE 或 ROLLUP 运算符添加时,该函数将导致附加列的输出值为 0. 仅在与包含 C

SQL学习笔记三 select语句的各种形式小结_MsSql

复制代码 代码如下: Select * from T_Employee select FName,FAge from T_Employee select FName from T_Employee where FSalary < 5000 select FName as 姓名,FAge as 年龄,FSalary as 月薪from T_Employee where FSalary < 5000 select FName as 姓名,FAge as 年龄,FSalary as 月薪,getda

SQL学习笔记三 select语句的各种形式小结

复制代码 代码如下:Select * from T_Employee select FName,FAge from T_Employee select FName from T_Employee where FSalary < 5000 select FName as 姓名,FAge as 年龄,FSalary as 月薪from T_Employee where FSalary < 5000 select FName as 姓名,FAge as 年龄,FSalary as 月薪,getdat

MyBatis学习 之 三、SQL语句映射文件(2)增删改查、参数、缓存

 2.2 select 一个select 元素非常简单.例如: Xml代码   <!-- 查询学生,根据id -->   <select id="getStudent" parameterType="String" resultMap="studentResultMap">       SELECT ST.STUDENT_ID,                  ST.STUDENT_NAME,              

Oracle基础学习(三) Oracle PL/SQL语言基础

本章目标 PL/SQL语言基本结构 PL/SQL变量和常量的声明 PL/SQL程序的执行部分 了解PL/SQL常用函数 PL/SQL简介 1. PL/SQL简介 a) PL/SQL(Procedural Language/SQL,过程语言/SQL) i. 它是结合Oracle过程语言和结构化查询语言的一种扩展语言 ii. PL/SQL支持多种数据类型,可以使用条件语句和循环语句等控制结构 iii. PL/SQL可用于 创建存储过程.触发器和程序包,也可以用来处理业务规则.数据库事件或给SQL命令