我在SQL2000上有一个带有数字列的表,我需要select来返回01,02,03 ......
目前返回1,2,3,... 10,11 ......
感谢。
答案 0 :(得分:7)
这有用吗?
SELECT REPLACE(STR(mycolumn, 2), ' ', '0')
来自http://foxtricks.blogspot.com/2007/07/zero-padding-numeric-value-in-transact.html
答案 1 :(得分:1)
这类问题是关于数据库的接口。实际上数据库应该返回数据,如果它想要特定格式的数据,您的应用程序可以重新格式化它。您不应该在数据库中执行此操作,而应在表示层中执行此操作。
答案 2 :(得分:0)
John的答案有效并且可以推广到任意数量的数字,但我会更舒服
select case when mycolumn between -9 and 9 then '0' + str(mycolumn) else str(mycolumn) end
答案 3 :(得分:0)
其中n是0到99之间的正整数:
select right('0'+ltrim(str(n)),2)
或
select right(str(100+n),2)
但我最喜欢John的答案。目标宽度的单点规范,但我发布了这些,因为它们也是在其他情况或语言中可能更好用的常用习语。