Я знаю, что это было первоначально задано еще в 2008 году, но есть некоторые новые функции, которые были введены в SQL Server 2012. Функция FORMAT значительно упрощает заполнение нулями. Он также выполнит преобразование для вас:
declare @n as int = 2
select FORMAT(@n, 'd10') as padWithZeros
Обновление:
Я сам хотел проверить фактическую эффективность функции FORMAT. Я был очень удивлен, обнаружив, что эффективность была не очень хорошей по сравнению с исходным ответом AlexCuse . Хотя я считаю, что функция FORMAT более чистая, она не очень эффективна с точки зрения времени выполнения. Таблица Tally, которую я использовал, насчитывает 64 000 записей. Слава Мартину Смиту за указание эффективности времени выполнения.
SET STATISTICS TIME ON
select FORMAT(N, 'd10') as padWithZeros from Tally
SET STATISTICS TIME OFF
Время выполнения SQL Server:
Время ЦП = 2157 мс, прошедшее время = 2696 мс.
SET STATISTICS TIME ON
select right('0000000000'+ rtrim(cast(N as varchar(5))), 10) from Tally
SET STATISTICS TIME OFF
Время выполнения SQL Server:
процессорное время = 31 мс, прошедшее время = 235 мс.