Каждый n-й ряд, чтобы получить 50:
SELECT *
FROM table
WHERE row_number() over() MOD (SELECT Count(*) FROM table) / 50 == 0
FETCH FIRST 50 ROWS ONLY
А если вам нужна случайная выборка, следуйте ответу jimmy_keen.
UPDATE:
Что касается требования для его работы на MS SQL, я думаю, что это должно быть изменено на это (хотя нет MS SQL Server для тестирования):
SELECT TOP 50 *
FROM (
SELECT t.*, row_number() over() AS rn, (SELECT count(*) FROM table) / 50 AS step
FROM table t
)
WHERE rn % step == 0