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

 

 


免責聲明!

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



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