【问题标题】:How to get a value with leading zero's如何获得带有前导零的值
【发布时间】:2012-01-14 20:10:45
【问题描述】:

表1

ID (NVarchar Column)

01 
02
03
...

查询

Select max(id) from table1

输出是

3

我想得到前导零的最大id,如果是002意味着查询应该返回002

预期输出是

03

怎么做

需要查询帮助

【问题讨论】:

  • ID 列的类型是什么?
  • Select max(id) from table1 不会 如果 3 在 varchar 列中存储为 03。 MAX 给出与被 MAX 化的表达式相同的返回类型。如果您需要答案,请提供正确的信息
  • 这没什么区别。 MAX(nvarchar) = nvarchar msdn.microsoft.com/en-us/library/aa933240(SQL.80).aspx

标签: sql sql-server sql-server-2000


【解决方案1】:

我执行了以下代码:

 DECLARE @TABLE TABLE (
            ID nvarchar(10)
            )

 INSERT @TABLE VALUES ( '003' )
 INSERT @TABLE VALUES ( '004' )

 SELECT MAX (ID)

 FROM @TABLE

输出是

  004

当使用 int 数据类型时:

DECLARE @TABLE TABLE (
            ID int
            )

INSERT @TABLE  values ( '003' )
INSERT @TABLE VALUES ( '004')

SELECT MAX (ID )

FROM @TABLE

输出是:

4

我会检查您是否正确定义了数据类型。

【讨论】:

    【解决方案2】:

    要了解这个想法:Select right('000' + max(id),2) from table1

    【讨论】:

      【解决方案3】:

      您可以编写如下查询:

      declare @input int, @len int
      set @len = 2
      select right(REPLICATE('0',@len)+convert(varchar(5),2),@len ) AS LPAD
      

      我假设您一直都知道长度。您也可以将其设为 UDF。

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-03-23
      • 1970-01-01
      • 2017-11-16
      • 1970-01-01
      • 2015-04-05
      • 1970-01-01
      相关资源
      最近更新 更多