我有以下情况:
DECLARE @m VARCHAR(50) = '000000001'
WHILE (@m <= 10)
BEGIN
PRINT @m
-- Increment the iterator
SET @m = @m + 1
END当我运行上面的代码时,我得到:
000000001
2
3
4
5
6
7
8
9
10问题是,我需要的结果如下:
000000001
000000002
000000003
000000004
000000005
000000006
000000007
000000008
000000009
000000010我希望当数字增加时,8 0出现在数字之前,当数字达到10时是7 0。我尝试了以下方法,但没有起作用,就像你在10之前猜到的那样。
DECLARE @m VARCHAR(50) = '1'
WHILE (@m <= 10)
BEGIN
PRINT '00000000' +@m
-- Increment the iterator
SET @m = @m + 1
END基本上,我只想保持9位数,这听起来可能很愚蠢,但我能说什么(我的老板希望如此)。
发布于 2013-10-07 23:56:03
如果你真的必须:
DECLARE @i int; Set @i = 1;
WHILE @i <= 10
BEGIN
PRINT RIGHT('00000000' + cast(@m as char(9)), 9);
SET @i = @i + 1;
END 但是请不要。数据应该存储原始,并且只在显示时格式化,最好是由客户端应用程序格式化。
https://stackoverflow.com/questions/19236543
复制相似问题