在SQL Server中实现 Limit m,n 的功能

在MySql和Sqlite中,可以用limit来查询第m条开始取n条的记录,如select * from mytable limit 1,3;但是在SQL Server中不支持limit语句,SQL Server支持Top,可以通过使用Top的嵌套来实现与limit相同的功能。

如要取mytable表中的前10条记录,SQL中的语句如下:select top 10 from mytable

如果要查询Mytable表中的第11条到18条的记录,SQL中的语句如下:

select top 8 * from mytalbe where FID not in (select Top 10 from mytable);

该语句相当于sqlite中的select * from mytable limit 10,8;

在SQL Server中实现 Limit m,n 的功能

时间: 2024-12-21 16:34:20

在SQL Server中实现 Limit m,n 的功能的相关文章

在sql server中利用with as实现递归功能

在sqlserver2005之前,要实现递归功能比较麻烦,比如可能会要用到临时表与while语句来循环.自sqlserver2005之后,新增了with as功能语法,即 公用表达式(CTE),让递归实现起来变的简单了. 本章我们主要演示如何利用with as功能实现一个简单的递归功能.在这之前先看一下cte的语法: [ WITH <common_table_expression > [ ,...n ] ]<common_table_expression >::= expressi

Oracle 和SQL server中数据备份与恢复

Oracle 侧 创建一个表,将现有表数据导入其中. create Table  TB_NYU_TENDERTBL_BAK   as  select *  from  TB_NYU_TENDERTBL  where  1=1 删除原来表内容. DELETE  FROM TB_NYU_TENDERTBL 恢复表的内容 insert  into TB_NYU_TENDERTBL  select  * from  TB_NYU_TENDERTBL_BAK SQL server侧 select  * i

从算法入手讲解如何在SQL Server中实现最优最简

算法是计算机科学中一个重要的研究方向,是解决复杂问题的关键.在计算机世界中,算法无处不在.数据库是存储数据和执行大批量计算的场所,在数据库中使用一些简单的SQL命令,进行存储.查询.统计.以解决现实世界中的问题已经是屡见不鲜.随着数据量的大幅度增加和业务规则的日益复杂,越来越需要一种专门的方法来满足效率和准确性方面的要求.如何把解决问题的复杂算法转换为数据库能够执行的命令,也是数据库应用技术研究的一个方面.本文以MSSQL中的命令来阐述例子. 数据库中可以存储实体的数据集合,在进行运算时,数据库

SQL Server中授予用户查看对象定义的权限

  在SQL Server中,有时候需要给一些登录名(用户)授予查看所有或部分对象(存储过程.函数.视图.表)的定义权限存.如果是部分存储过程.函数.视图授予查看定义的权限,那么就像下面脚本所示,比较繁琐: GRANT VIEW DEFINITION ON  YOUR_PROCEDURE TO   USERNAME; GRANT VIEW DEFINITION ON  YOUR_FUNCTION TO USERNAME; GRANT VIEW DEFINITION ON  YOUR_VIEW T

SQL Server中的执行引擎入门

简介 当查询优化器(Query Optimizer)将T-SQL语句解析后并从执行计划中选择最低消耗的执行计划后,具体的执行就会交由执行引擎(Execution Engine)来进行执行.本文旨在分类讲述执行计划中每一种操作的相关信息. 数据访问操作 首先最基本的操作就是访问数据.这既可以通过直接访问表,也可以通过访问索引来进行.表内数据的组织方式分为堆(Heap)和B树,其中表中没有建立聚集索引时数据是通过堆进行组织的,这个是无序的,表中建立聚集索引后和非聚集索引的数据都是以B树方式进行组织,

Microsoft SQL Server中条件字段是Nvarchar类型的,条件有中文的无法查询的原因及处理方法

条件中带的是中文无法查询出,因为字段sender_su_name是nvarchar类型的,需要前面接个N SELECT * FROM [test].[dbo].[Ship_User_Email]  WHERE [sender_su_name]=N'奖励' 为什么要带N如下解释: 使用 Unicode 数据 Unicode 标准为全球商业领域中广泛使用的大部分字符定义了一个单一编码方案.所有的计算机都用单一的 Unicode 标准 Unicode 数据中的位模式一致地翻译成字符.这保证了同一个位模

SQL Server中TOP子句可能导致的问题以及解决办法

原文:SQL Server中TOP子句可能导致的问题以及解决办法 简介      在SQL Server中,针对复杂查询使用TOP子句可能会出现对性能的影响,这种影响可能是好的影响,也可能是坏的影响,针对不同的情况有不同的可能性.      关系数据库中SQL语句只是一个抽象的概念,不包含任何逻辑.很多元数据都会影响执行计划的生成,SQL语句本身并不作为生成执行计划所参考的元数据(提示除外),但TOP关键字却是直接影响执行计划的一个关键字,因此在某些情况下使用TOP会导致性能受到影响,下面我们来

在SQL Server中为什么不建议使用Not In子查询

原文:在SQL Server中为什么不建议使用Not In子查询     在SQL Server中,子查询可以分为相关子查询和无关子查询,对于无关子查询来说,Not In子句比较常见,但Not In潜在会带来下面两种问题: 结果不准确 查询性能低下       下面我们来看一下为什么尽量不使用Not In子句.   结果不准确问题     在SQL Server中,Null值并不是一个值,而是表示特定含义,其所表示的含义是"Unknow",可以理解为未定义或者未知,因此任何与Null值

SQL Server中smalldatetime的日期范围为何是[1900-01-01,2079-06-06]

本文目录列表: 1.SQL Server中的基准日期 2.smalldatetime的日期范围 3.smalldatetime的日期范围和无符号2字节整数的关系 4.总结语 5.参考清单列表   SQL Server中的基准日期   SQL Server 中针对datetime和smalldatetime这两个日期时间数据类型提供一个基准日期,也就是1900-01-01. 以下摘录自MSDN: SQL Server 2005 数据库引擎用两个 4 字节的整数内部存储 datetime 数据类型的