TSQL выбрать последние 10 строк из таблицы? - PullRequest
4 голосов
/ 26 июня 2011

У меня есть таблица, содержащая 300 миллионов строк, и кластеризованный индекс для столбца [DataDate].

Как выбрать последние 10 строк этой таблицы (я хочу найти самую последнюю дату в таблице)?

База данных: Microsoft SQL Server 2008 R2.

Обновление

Ответы, приведенные ниже, работают отлично, но только если в [DataDate] есть кластерный индекс. В конце концов, таблица состоит из 300 миллионов строк, и простой запрос может занять часы, а не секунды. План запроса использует кластеризованный индекс [DataDate] для получения результатов в течение нескольких десятков миллисекунд.

Ответы [ 3 ]

10 голосов
/ 26 июня 2011

TOP (Transact-SQL) указывает, что только первый набор строк будет возвращен из результата запроса. Набор строк может быть числом или процентом строк. Выражение TOP может использоваться в операторах SELECT, INSERT, UPDATE, MERGE и DELETE.

SELECT TOP(10) *
FROM MyTable
ORDER BY DataDate DESC
8 голосов
/ 26 июня 2011

TOP

SELECT TOP(10) [DataDate] FROM YourTable ORDER BY [DataDate] DESC   
2 голосов
/ 26 июня 2011

Выполните обратную сортировку, используя ORDER BY, и используйте TOP.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...