寫出一條SQL語句:取出表A中第31到40行記錄(SQLserver,以自增長的ID作為主鍵,注意:


一條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 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM