zoukankan      html  css  js  c++  java
  • sql查询选择表中从10到15的记录

    msdn关于order by的解释

    ORDER BY 子句按一列或多列(最多 8,060 个字节)对查询结果进行排序。有关 ORDER BY 子句最大大小的详细信息,请参阅 ORDER BY 子句 (Transact-SQL)。Microsoft SQL Server 2005 允许在 FROM 子句中指定对 SELECT 列表中未指定的表中的列进行排序。ORDER BY 子句中引用的列名必须明确地对应于 SELECT 列表中的列或 FROM 子句中的表中的列。如果列名已在 SELECT 列表中有了别名,则 ORDER BY 子句中只能使用别名。同样,如果表名已在 FROM 子句中有了别名,则 ORDER BY 子句中只能使用别名来限定它们的列。排序可以是升序的 (ASC),也可以是降序的 (DESC)。如果未指定是升序还是降序,就假定为 ASC。

    查询第11到15条记录的思路。

    sqlserver中有top关键字,在结果集有很多的情况下,top非常有用,主要意思就是查询记录的前面几条。但是我们现在的第11到第15不是从第一条记录开始的,是一个截取记录集,那么就不能通过单纯的top来解决问题。我们可以通过以下思路来解决问题

    1. 首先以升序asc来求出top 15的记录集
    2. 然后将这15条记录以降序desc排列
    3. 最后求这个逆序的15条记录的top 5记录,这样求出来的就是第11到第15条记录。

    实例:以AdventureWorks2008数据库为例来说明

    SELECT TOP 5 [ContactID],[LastName],[Phone]
      FROM 
      (SELECT TOP 15 [ContactID],[LastName],[Phone] 
      FROM [AdventureWorks].[Person].[Contact] order by [ContactID] asc ) Contact2 
      order by [ContactID] desc

    上述查询结果集为

    ContactID            LastName            Phone
    -----------           ---------------    -------------
    15                       Akers                 440-555-0166
    14                       Ferrier                571-555-0128
    13                      Ahlering               678-555-0175
    12                      Aguilar                 1 (11) 500 555-0198
    11                      Agcaoili                554-555-0110

  • 相关阅读:
    2019-2020-2 网络对抗技术 20175318 Exp0 kali Linux系统的安装(雾
    手动编译 TCP BBR v2 Alpha/Preview 内核
    Adobe Flash Player解除限制版
    ABBYY FineReader 15.0.18.1494 Corporate Multilingual破解
    易语言5.9精简学习增强版
    Debian9 快速开启 TCP BBR 实现高效单边加速
    ucosii-2(选做)
    Ubuntu 18.04/18.10快速开启Google BBR的方法
    基于 Nginx 的 v2+websocket+tls 域名伪装
    Google TCP升级版加速:BBR 2.0对比BBR Plus
  • 原文地址:https://www.cnblogs.com/xwdreamer/p/2479061.html
Copyright © 2011-2022 走看看