Вершина Выбора SQL Server ASP.NET 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>

Это - то, что я имею до сих пор, но я не могу найти информацию онлайн о том, как пропустить запись

11
задан marc_s 8 April 2010 в 07:25
поделиться

3 ответа

Вы можете использовать фильтр или сделать это в 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    

Редактировать: Я буквально понял «пропустить первый элемент». Может быть, вы не это имели в виду?

8
ответ дан 3 December 2019 в 06:45
поделиться

Взгляните на sql, сгенерированный в ответе на этот вопрос effective-way-to-make-paging-on-sql-server-2008

1
ответ дан 3 December 2019 в 06:45
поделиться

Для 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

Но есть более эффективные средства реализации разбивки на страницы, если это действительно то, что вам нужно.

9
ответ дан 3 December 2019 в 06:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: