现在有一个表Questioin,主码是qid,要求选择第m行到第n行的元组

//方法一:效率最低

//错误:如果n<m,将选取前n条数据,如果n>=m,将选取从m+1开始的n条数据

select top n *
from Question
where qid not in
{
select top m qid
from Question
}

//当然改成下面的就正确了

select top(n-m)*
from Question
where qid not in
(select top m id from Question)

//方法二:先排序,据说效率最高

select top m * from
(select top n * from Question order by qid asc)a
order by qid desc

//方法三:利用ROW_NUMBER函数对元组编号(推荐使用)

SELECT * FROM
(
SELECT ROW_NUMBER() OVER(ORDER BY qid) as rowIndex,* FROM Question
)b
WHERE b.rowIndex>=m AND b.rowindex<=n

sql server选取第m行到第n行的元组的更多相关文章

  1. 面试1 SQL SERVER 查询第20行到30之间的数据

    SQL SERVER 查询第20行到30之间的数据 1.先查询前20行的ID,后查询除去20条记录的前10条记录 SELECT TOP 10 * FROM tbBank WHERE BankID NO ...

  2. SQL Server中关于基数估计如何计算预估行数的一些探讨

    关于SQL Server 2014中的基数估计,官方文档Optimizing Your Query Plans with the SQL Server 2014 Cardinality Estimat ...

  3. SQL Server选取本周或上一周数据

    有关SQL Server中有关周的数据查询主要思路来自下面这个语句 select getdate(), dateadd(wk, datediff(wk, 0, DateAdd(Day,-1,getda ...

  4. SQL SERVER 查询第20行到30之间的数据

    1.先查询前20行的ID,后查询除去20条记录的前10条记录 SELECT TOP * FROM tbBank WHERE BankID NOT IN(SELECT TOP BankID FROM t ...

  5. SQL Server安全(10/11):行级别安全(Row-Level Security)

    在保密你的服务器和数据,防备当前复杂的攻击,SQL Server有你需要的一切.但在你能有效使用这些安全功能前,你需要理解你面对的威胁和一些基本的安全概念.这篇文章提供了基础,因此你可以对SQL Se ...

  6. 【sql server】"已更新或删除的行值要么不能使该行成为唯一行,要么改变了多个行" 解决方案

    #事故现场: 1.在手动修改某表中数据是,出现如下错误提示:  已更新或删除的行值要么不能使该行成为唯一行,要么改变了多个行 2.表结构及数据: #解决方法: 1.原因分析:提示被删除的行不是唯一行, ...

  7. SQL Server批量向表中插入多行数据语句

    因自己学习测试需要,需要两个有大量不重复行的表,表中行数越多越好.手动编写SQL语句,通过循环,批量向表中插入数据,考虑到避免一致问题,设置奇偶行不同.个人水平有限,如有错误,还望指正. 语句如下: ...

  8. SQL Server查看所有表大小、表行数和占用空间信息

    一.查看表名和对应的数据行数select  a.name as '表名',b.rows as '表数据行数'from sysobjects a inner join sysindexes bon a. ...

  9. sql server查询数据库中所有表的行数

    select a.name,b.rows from sysobjects a,sysindexes b where a.name = b.name order by b.rows desc

随机推荐

  1. percona-toolkit大表操作DDL使用

    1. 系统与安装数据库 [root@zhang ~]# cat /etc/redhat-release # 也可以使用其他版本 CentOS Linux release (Core) [root@zh ...

  2. Java设计模式之九 ----- 解释器模式和迭代器模式

    前言 在上一篇中我们学习了行为型模式的责任链模式(Chain of Responsibility Pattern)和命令模式(Command Pattern).本篇则来学习下行为型模式的两个模式, 解 ...

  3. sql语句如何将多个空格字符替换成一个空格字符

    很多时候,数据表中某个字段的值会带有一个或多个空格字符串的情况,面对多样化的需求,我们可能需要将这些空格字符串去除,当然,这很好说,我们可以直接用replace(' ','')将单个空格变成无就可以了 ...

  4. (7)Python赋值机制

  5. oracle11gR2 手工创建基于asm存储的oracle实例

    http://www.cnblogs.com/beanbee/archive/2012/09/22/2697689.html使用命令行手工建立Oracle11gR2数据库 通过命令行建立一个数据库可以 ...

  6. python3 练习题 day01

    #练习题:'''1.简述变量命名规范'''#变量名由数字.字母.下划线组成#变量名可以字母和下划线开头,不能以数字开头,并且不能全为数字#变量名不能太长,且要有意义#最好使用驼峰或下划线格式命令#变量 ...

  7. zabbix学习-zabbix安装

    本次安装教程完全参考官方rpm安装教程: https://www.zabbix.com/documentation/3.4/zh/manual/installation/install_from_pa ...

  8. 堆-STL

    往堆中加一个元素的算法(put): #include<algorithm> void put (int d) { heap[++heap_size]=d; push_heap(heap+, ...

  9. PAT A1140 Look-and-say Sequence (20 分)——数学题

    Look-and-say sequence is a sequence of integers as the following: D, D1, D111, D113, D11231, D112213 ...

  10. 【Codeforces 86C】Genetic engineering

    Codeforces 86 C 题意:给\(m\)个串,要构造长度为\(n\)的串,而且必须由这些模式串们覆盖(可以重复),问可以构造多少种. 思路:首先构造AC自动机,然后\(dp(i,j,k)\) ...