Sql 如何显示数字“;12”;格式为“;0000012”;

Sql 如何显示数字“;12”;格式为“;0000012”;,sql,sql-server,sql-server-2005,Sql,Sql Server,Sql Server 2005,如果只需要数字12,如何使用SQL以“0000012”的格式显示数字“12” SELECT '0000012' 否则,如果该数字需要以7位数字显示: SELECT RIGHT('0000000'+CONVERT(nvarchar,FieldValue),7) 关于这个问题的更多信息会有所帮助。像这样的东西怎么样 DECLARE @Val INT DECLARE @Length INT SELECT @Val = 12, @Length = 7 SELECT REPLI

如果只需要数字12,如何使用SQL以“0000012”的格式显示数字“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))

重复指定的字符串值 次数


我没有要测试的服务器,但您应该能够在SQL中使用以下内容:

'RN ' + RIGHT(CAST(auto_id AS VarChar) + '000000', 6)
例如: 代码:


这不是很有效,但对您的案例有效-

DECLARE @num int
DECLARE @totalChar int

SET @num = 12
SET @totalChar = 10

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

000000012

最短的答案可能也是最有效的,那就是

SELECT RIGHT(10000000+ @Val, @Length)
e、 g


这应该可以轻松地移植到其他SQL:

SELECT
   REVERSE(CAST(REVERSE(CAST(CAST(12 AS INTEGER) AS VARCHAR(7))) + '000000' AS CHAR(7)))

为什么不正确(复制('0',@length)+强制转换(@Val作为VARCHAR(8000)),@length)?为什么要测试LEN?@gbn,我想只是复制缺失的填充物。所以如果你有100个,它将只复制4个零,1000个,只复制3个,以此类推。这似乎是我遗漏的一个问题吗?没问题,我只是想知道。我的强迫症患者不喜欢做两次(2次施展)。。。
SELECT RIGHT(10000000+ NumColumn, 7)
SELECT
   REVERSE(CAST(REVERSE(CAST(CAST(12 AS INTEGER) AS VARCHAR(7))) + '000000' AS CHAR(7)))
SELECT REPLACE(STR(12, 7), ' ', '0')