Я думаю, это то, что вы ищете:
SELECT padded_id = REPLACE(STR(id, 4), SPACE(1), '0')
FROM tableA
или
SELECT REPLACE(STR(id, 4), SPACE(1), '0') AS [padded_id]
FROM tableA
Я не проверял синтаксис во втором примере. Я не уверен, что это работает на 100% - это может потребовать некоторой настройки - но оно передает общую идею о том, как получить желаемый результат.
EDIT
Для решения проблем, перечисленных в комментариях ...
@ pkr298 - Да STR работает только с числами ... Поле OP является идентификатором ... отсюда только число.
@ Desolator - Конечно, это не сработает ... Первый параметр имеет длину 6 символов. Вы можете сделать что-то вроде:
SELECT REPLACE(STR(id,
(SELECT LEN(MAX(id)) + 4 FROM tableA)), SPACE(1), '0') AS [padded_id] FROM tableA
теоретически это должно привести к смещению ворот ... если число увеличивается, оно должно ВСЕГДА работать ... независимо от того, равно ли оно 1 или 123456789 ...
Так что, если ваше максимальное значение равно 123456 ... вы увидите 0000123456, а если ваше минимальное значение равно 1, вы увидите 0000000001