Asp.net

ASP.NET SQL Server 選擇前 N 個值但跳過 M 個結果

  • September 27, 2012

我正在開發一個 ASP.Net 項目,以從數據庫中顯示網站上的資訊。我想從新聞表中選擇前 10 個項目,但跳過第一個項目,我遇到了一些問題。

<asp:SqlDataSource ID="SqlDataSource1" 
                  runat="server" ProviderName="System.Data.SqlClient"
                  ConnectionString="<%$ ConnectionStrings:ClubSiteDB %>" 
                  SelectCommand="SELECT top 5 [id], 
                                              [itemdate], 
                                              [title], 
                                              [description], 
                                              [photo] 
                                 FROM [Announcements] order by itemdate desc">
</asp:SqlDataSource>

這是我到目前為止所擁有的,但我在網上找不到任何關於如何跳過記錄的資訊

您可以使用過濾器或在 SQL 中執行此操作:

SELECT top 10 
     [id], 
     [itemdate], 
     [title], 
     [description], 
     [photo] 
   FROM [Announcements]
   WHERE id <> (select TOP 1 id from announcements order by itemdate desc)
   order by itemdate desc    

編輯:我從字面上理解了“跳過第一個項目”。也許這不是你的意思?

對於 SQL Server 2005+,請使用:

SELECT x.*
 FROM (SELECT t.id,
              t.itemdate,
              t.title,
              t.description,
              t.photo,
              ROW_NUMBER() OVER (ORDER BY t.itemdate) AS rank
         FROM ANNOUNCEMENTS t) x
WHERE x.rank BETWEEN a AND b

但是有更好的方法來實現分頁,如果這真的是你所追求的。

引用自:https://stackoverflow.com/questions/2595978