Как отобразить число «12» в формате «0000012» с помощью SQL
, если вы просто хотите получить число 12, тогда
SELECT '0000012'
, в противном случае, если это число, которое нужно отображать с 7 цифрами:
SELECT RIGHT('0000000'+CONVERT(nvarchar,FieldValue),7)
Дополнительная информация по вопросу поможет.
Как насчет чего-то вроде
DECLARE @Val INT DECLARE @Length INT SELECT @Val = 12, @Length = 7 SELECT REPLICATE('0',@Length - LEN(CAST(@Val AS VARCHAR(MAX)))) + CAST(@Val AS VARCHAR(MAX))
REPLICATE (Transact-SQL)
Повторяет строковое значение указанное количество раз.
Самый короткий ответ, который, вероятно, также работает лучше всего, это просто
SELECT RIGHT(10000000+ @Val, @Length)
, например
SELECT RIGHT(10000000+ NumColumn, 7)
SELECT REPLACE(STR(12, 7), ' ', '0')
Это должно легко портировать на другие SQL:
SELECT REVERSE(CAST(REVERSE(CAST(CAST(12 AS INTEGER) AS VARCHAR(7))) + '000000' AS CHAR(7)))
Это не эффективно, но будет работать для вашего случая -
DECLARE @num int DECLARE @totalChar int SET @num = 12 SET @totalChar = 10 SELECT right('0000000000' + CONVERT(varchar, @num), @totalChar)
Вывод -
000000012
У меня нет сервера для тестирования, но вы должны иметь возможность использовать следующее в вашем SQL:
'RN ' + RIGHT(CAST(auto_id AS VarChar) + '000000', 6)
например: Код:
SELECT 'RN ' + RIGHT(CAST(auto_id AS VarChar) + '000000', 6) FROM tablename