用前缀0填充结果到固定宽度

最后发布: 2016-06-12 08:53:51


问题

我面临以下挑战。 目标是创建6个字符的固定宽度字段。 如果表字段仅包含三个字符,则应该有三个前缀为0的字符。

来源是带有帐户限制的表格

限制

201

4000

结果

限制

000201

004000

我有以下代码,但这将后缀该值,并且我需要在限制值前加上0。

SELECT REPLACE(CAST(LIMIT AS NCHAR(6)),SPACE(1),'0')AS Accountlimit FROM DWH.limit

sql prefix
回答

如果您使用的是SQL Server 2012,则可以使用FORMAT函数,如下所示:

SELECT FORMAT(201, '000000')

上面的语句的结果将是字符串“ 000201”


回答

怎么样做以下

  1. 给字符串加上六个零前缀(因此您将拥有足够的零)
  2. 提取该字符串的最后六个字母(修剪掉不需要的字母)

select substr(concat('000000', limit)), -6, 6) ....