Как отобразить число «12» в формате «0000012» - PullRequest
2 голосов
/ 22 февраля 2011

Как отобразить число «12» в формате «0000012» с помощью SQL

Ответы [ 7 ]

4 голосов
/ 22 февраля 2011

, если вы просто хотите получить число 12, тогда

SELECT '0000012'

, в противном случае, если это число, которое нужно отображать с 7 цифрами:

SELECT RIGHT('0000000'+CONVERT(nvarchar,FieldValue),7)

Дополнительная информация по вопросу поможет.

2 голосов
/ 22 февраля 2011

Как насчет чего-то вроде

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)

Повторяет строковое значение указанное количество раз.

1 голос
/ 22 февраля 2011

Самый короткий ответ, который, вероятно, также работает лучше всего, это просто

SELECT RIGHT(10000000+ @Val, @Length)

, например

SELECT RIGHT(10000000+ NumColumn, 7)
0 голосов
/ 22 февраля 2011
SELECT REPLACE(STR(12, 7), ' ', '0')
0 голосов
/ 22 февраля 2011

Это должно легко портировать на другие SQL:

SELECT
   REVERSE(CAST(REVERSE(CAST(CAST(12 AS INTEGER) AS VARCHAR(7))) + '000000' AS CHAR(7)))
0 голосов
/ 22 февраля 2011

Это не эффективно, но будет работать для вашего случая -

DECLARE @num int
DECLARE @totalChar int

SET @num = 12
SET @totalChar = 10

SELECT right('0000000000' + CONVERT(varchar, @num), @totalChar)

Вывод -

000000012
0 голосов
/ 22 февраля 2011

У меня нет сервера для тестирования, но вы должны иметь возможность использовать следующее в вашем SQL:

'RN ' + RIGHT(CAST(auto_id AS VarChar) + '000000', 6)

например: Код:

SELECT 'RN ' + RIGHT(CAST(auto_id AS VarChar) + '000000', 6)
FROM tablename
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...