• 一条Sql语句:取出表A中第31到第40记录(面试题)


    写出一条Sql语句:取出表A中第31到第40记录(SQLServer,以自动增长的ID作为主键,注意:ID可能不是连续的。
    答:解1: select top 10 * from A where id not in (select top 30 id from A) 

    解2: select top 10 * from A where id > (select max(id) from (select top 30 id from A )as 

     普通做法

    select top 10 productid 

    from Production.Product

    where productid not in(

    select top 30 productid from Production.Product

    order by productid asc

    ) order by productid asc

     临时表做法

    declare  @table table (id int identity(1,1),pid int)

    insert @table(pid) 

    select productid 

    from Production.Product

    order by productid asc


    select productid from Production.Product t1

    inner join @table t2 on t1.productid=t2.pid

    where t2.id>30 and t2.id<=40 

    sqlserver2005做法

    select * from 

    (

    select productid, ROW_NUMBER() OVER(ORDER BY productid asc) as rowid

    from Production.Product

    )T

    where T.rowid>30 and rowid<=40 

    作者:Jackhuclan
    出处:http://jackhuclan.cnblogs.com/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    Makefile编写
    C++静态库与动态库
    C语言编译过程详解
    Fiddler抓HTTPS
    web测试的一些关注点
    Appium使用过程中的一些坑
    Jmeter+Maven+Jenkins的搭建笔记
    华为DHCP+VLANDHCP RELAY配置重点
    华为GVRP配置重点
    802.11协议总结
  • 原文地址:https://www.cnblogs.com/jackhuclan/p/1832346.html
Copyright © 2020-2023  润新知