Я работаю над проектом 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, сгенерированный в ответе на этот вопрос effective-way-to-make-paging-on-sql-server-2008
Для 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
Но есть более эффективные средства реализации разбивки на страницы, если это действительно то, что вам нужно.