Одним из вариантов является использование рекурсивного CTE для получения необходимых данных, а затем использование курсора для обработки операторов печати (если вы не можете использовать набор записей). Запрос будет выглядеть примерно так:
with numbers(n, s) AS (
SELECT 1, convert(varchar(max), 1)
UNION ALL
SELECT n+1, convert(varchar(max), n+1) + ' ' + s
FROM numbers
WHERE n < 5
)
SELECT s FROM numbers ORDER BY n DESC
давая вам это:
s
5 4 3 2 1
4 3 2 1
3 2 1
2 1
1
Опять же, если вам нужно распечатать значения (а не получить как набор записей), вы можете использовать курсор для циклического перебора результатов.