Asp.net
ASP.NET SQL Server 選擇前 N 個值但跳過 M 個結果
我正在開發一個 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但是有更好的方法來實現分頁,如果這真的是你所追求的。