我使用的方法比较笨, 先判断整形数有多大,然后再决定在它前面加多少个"0",
if @n< 10
select str = '0000' + Cast(@n as varchar(1))
else if @n<100
select str = '000' + Cast(@n as varchar(2))
else if @n < 1000
select str = '00' + Cast(@n as varchar(3))
..... 感觉SQL 下面,应该有类似于格式化字符串的语句,可是只找到了 Format_String 这个单词,却不会使用..
if @n< 10
select str = '0000' + Cast(@n as varchar(1))
else if @n<100
select str = '000' + Cast(@n as varchar(2))
else if @n < 1000
select str = '00' + Cast(@n as varchar(3))
..... 感觉SQL 下面,应该有类似于格式化字符串的语句,可是只找到了 Format_String 这个单词,却不会使用..
set @s='32'
select right('00000'+@s,6)
set @s='32'
select right('00000'+@s,6),right(replicate('0',6)+@s,6)
set @n='32'
select right(100000+@n,5)/*----------
00032(1 row(s) affected)
*/
00032 00126(1 row(s) affected)
*/