代码之家  ›  专栏  ›  技术社区  ›  Mike Polen

如何在SQL 2000中返回数字的2位表示形式

  •  1
  • Mike Polen  · 技术社区  · 16 年前

    我在sql2000上有一个带有数字列的表,需要选择返回01、02、03…

    它当前返回1,2,3,…10,11…

    谢谢。

    4 回复  |  直到 16 年前
        1
  •  7
  •   John Millikin    16 年前

    这行吗?

    SELECT REPLACE(STR(mycolumn, 2), ' ', '0')
    

    http://foxtricks.blogspot.com/2007/07/zero-padding-numeric-value-in-transact.html

        2
  •  1
  •   Karl    16 年前

    这类问题是关于数据库的接口。实际上,数据库应该返回数据,如果您的应用程序需要特定格式的数据,可以重新格式化它。您不应该在数据库中这样做,而应该在表示层中这样做。

        3
  •  0
  •   Patrick Szalapski    16 年前

    约翰的答案是有效的,可以推广到任何数字,但我更愿意接受

    select case when mycolumn between -9 and 9 then '0' + str(mycolumn) else str(mycolumn) end 
    
        4
  •  0
  •   Hafthor    16 年前

    其中n是介于0和99之间的正整数:

    select right('0'+ltrim(str(n)),2)
    

    select right(str(100+n),2)
    

    但我最喜欢约翰的回答。针对目标宽度的单点规范,但我发布了这些规范,因为它们也是在其他情况或语言中可能工作得更好的常见习惯用法。