Википедия имеет хорошую статью [приблизительно 110] поисковые роботы , покрывая многие алгоритмы и соображения.
Однако я не потрудился бы писать свой собственный поисковый робот. Это - большая работа, и так как Вам только нужен "простой поисковый робот", я думаю все, в чем Вы действительно нуждаетесь, стандартный поисковый робот . Существует много бесплатных и поисковых роботов с открытым исходным кодом, которые, вероятно, сделают все, в чем Вы нуждаетесь с очень небольшой работой с Вашей стороны.
RIGHT('00' + CONVERT(VARCHAR, MyNumber), 2)
Имейте в виду, что это повредит числам> 99. Вы можете учесть эту возможность.
Используйте функцию ВПРАВО ... например
DECLARE @testnum TINYINT
SET @testnum = 3
PRINT RIGHT('00' + CONVERT(VARCHAR(2), @testnum), 2)
declare @t tinyint
set @t =3
select right(replicate('0', 2) + cast(@t as varchar),2)
То же: об ограничивающем эффекте для чисел> 99
Если вы хотите обслуживать 1-255, вы можете использовать
select right(replicate('0', 2) + cast(@t as varchar),3)
Но это даст вам 001, 010, 100 и т. Д.
Вы можете попробовать это
DECLARE @Table TABLE(
Val INT
)
INSERT INTO @Table SELECT 3
INSERT INTO @Table SELECT 30
DECLARE @NumberPrefix INT
SET @NumberPrefix = 2
SELECT REPLICATE('0', @NumberPrefix - LEN(Val)) + CAST(Val AS VARCHAR(10))
FROM @Table
Каков диапазон значений? От 0 до 10? Если это так, попробуйте:
SELECT REPLICATE('0',2-LEN(@t)) + CAST(@t AS VARCHAR)
Это обрабатывает от 0 до 9, а также от 10 до 99.
Теперь tinyint может увеличиваться до значения 255. Если вы хотите обрабатывать> 99–255, попробуйте следующее решение :
declare @t TINYINT
set @t =233
SELECT ISNULL(REPLICATE('0',2-LEN(@t)),'') + CAST(@t AS VARCHAR)
Чтобы понять решение, выражение слева от + вычисляет количество нулей в начале строки.
В случае значения 3 длина равна 1. 2 - 1 равно 1. REPLICATE Добавляет один ноль. В случае значения 10 длина равна 2. 2–2 равно 0. REPLICATE ничего не добавляет. В случае значения 100 длина равна -1, что дает NULL. Однако нулевое значение обрабатывается и устанавливается в пустую строку.
Теперь, если вы решите, что, поскольку tinyint может содержать до 255 и вы хотите, чтобы ваше форматирование состояло из трех символов, просто измените 2-LEN на 3-LEN в левое выражение, и все готово.