Первый:
SELECT TOP 50 PERCENT a, b, c FROM table
Второй:
SELECT TOP 50 a, b, c FROM table
Как правило, делать это не рекомендуется, если вы также не предоставляете ORDER BY (и в тех случаях, когдабудет отлично работать, если не указывать ORDER BY, ваш код будет более понятным и более устойчивым к изменениям в деталях базовых таблиц, если вы его вставите).
Пейджинг (например, возврат блока x изу строк) является более громоздким в SQLServer, чем многие другие реляционные базы данных на языке SQL (если честно, более громоздким, чем почти все из них), но можно сделать с помощью ROW_NUMBER:
WITH OrderedTable AS
(
SELECT a, b, c, ROW_NUMBER() OVER (ORDER BY d) as rowNumber
FROM table
)
SELECT a, b, c FROM OrderedTable
WHERE rowNumber between 31 and 40
Выберет третьюнабор из десяти строк, упорядоченный по столбцу d.
Этот последний метод также необходим, когда предел исходит из переменной, так как TOP не допускает что-то вроде TOP @ number.