当前位置:首页 > 编程教程 > mysql技术文章 > 如何在SQL Server中实现 Limit m,n 的功能

SQL Server中实现 Limit(m,n) 功能的方法

  • 发布时间:
  • 作者:码农之家
  • 点击:89

这篇文章主要知识点是关于SQL、Server、Limit、的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下电子书

Oracle SQL疑难解析
  • 类型:Oracle大小:125 MB格式:PDF作者:(美)艾伦
立即下载

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

在MySQL中,可以用 Limit 来查询第 m 列到第 n 列的记录,例如:
 

select * from tablename limit m, n

但是,在SQL Server中,不支持 Limit 语句。怎么办呢?
解决方案:
虽然SQL Server不支持 Limit ,但是它支持 TOP。

我们以SQL Server 2005为例,就以它自带的示范数据库 AdventureWorks 作为测试数据:
 

select id from tablename

如果要查询上述结果中前6条记录,则相应的SQL语句是:
 

select top 6 id from tablename

如果要查询上述结果中第 7 条到第 9 条记录,则相应的SQL语句是:
 

select top 3 id from tablename
where id not in (
  select top 6 id from tablename
)

 

select top (n-m+1) id from tablename
where id not in (
  select top m-1 id from tablename
)

 

select top @pageSize id from tablename
where id not in (
  select top @offset id from tablename
)

以上就是本次给大家分享的关于java的全部知识点内容总结,大家还可以在下方相关文章里找到相关文章进一步学习,感谢大家的阅读和支持。

您可能感兴趣的文章:

  • MySQL limit查询语句的优化技巧
  • mysql delete limit 简单用法
  • Python3连接SQLServer、Oracle、MySql实例代码
  • Windows Server 2008 R2和2012中PHP连接MySQL过慢的原因
  • 详细介绍mysql Community Server 5.7.19安装步骤
  • windows server2014 安装 Mysql Applying Security出错的简单解决方法
  • 相关电子书
    学习笔记
    网友NO.609619

    MySQL查询优化:连接查询排序limit(join、order by、limit语句)介绍

    不知道有没有人碰到过这样恶心的问题:两张表连接查询并limit,SQL效率很高,但是加上order by以后,语句的执行时间变的巨长,效率巨低。 情况是这么一个情况:现在有两张表,team表和people表,每个people属于一个team,people中有个字段team_id。 下面给出建表语句: create table t_team ( id int primary key, tname varchar(100) ); create table t_people ( id int primary key, pname varchar(100), team_id int, foreign key (team_id) references t_team(id) ); 下面我要连接两张表查询出前10个people,按tname排序。 于是,一个SQL语句诞生了:select * from t_people p left join t_team t on p.team_id=t.id order by p.pname limit 10; [语句①] 这个是我第一反应写的SQL,通俗易懂,也是大多数人的第一反应。然后来测试一下这个语句的执行时间。首先要准备数据。我用存储过程在t_team表中生成1000条数据,在t_people表中生成100000条数据。……

    网友NO.323299

    详解MySQL的limit用法和分页查询语句的性能分析

    limit用法 在我们使用查询语句的时候,经常要返回前几条或者中间某几行数据,这个时候怎么办呢?不用担心,mysql已经为我们提供了这样一个功能。 SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset LIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数。LIMIT 接受一个或两个数字参数。参数必须是一个整数常量。如果给定两个参数,第一个参数指定第一个返回记录行的 偏移量 ,第二个参数指定返回记录行的最大数目。 初始记录行的偏移量是 0(而不是 1) : 为了与 PostgreSQL 兼容,MySQL 也支持句法: LIMIT # OFFSET #。 mysql SELECT * FROM table LIMIT 5,10; // 检索记录行 6-15 为了检索从某一个偏移量到记录集的结束所有的记录行,可以指定第二个参数为 -1: mysql SELECT * FROM table LIMIT 95,-1; // 检索记录行 96-last. 如果只给定一个参数,它表示返回最大的记录行数目: mysql……

    网友NO.951765

    浅谈mysql使用limit分页优化方案的实现

    Mysql limit分页语句用法 与Oracle和MS SqlServer相比,mysql的分页方法简单的让人想哭。 --语法: SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset --举例: select * from table limit 5; --返回前5行select * from table limit 0,5; --同上,返回前5行select * from table limit 5,10; --返回6-15行 如何优化limit 当一个查询语句偏移量offset很大的时候,如select * from table limit 10000,10 , 最好不要直接使用limit,而是先获取到offset的id后,再直接使用limit size来获取数据。效果会好很多。 如: select * From customers Where customer_id =(select customer_id From customers Order By customer_id limit 10000,1) limit 10; 一、测试实验 mysql分页直接用limit start, count分页语句: select * from product limit start, count 当起始页较小时,查询没有性能问题,我们分别看下从10, 100, 1000, 10000开始分页的执行时间(每页取20条),如下: select * fro……

    <
    1
    >

    Copyright 2018-2020 www.xz577.com 码农之家

    版权投诉 / 书籍推广 / 赞助:520161757@qq.com