【问题标题】:Filling result with prefix 0 to a fixed width用前缀 0 填充结果到固定宽度
【发布时间】:2016-06-12 08:53:51
【问题描述】:

我有以下挑战。目标是创建 6 个字符的固定宽度字段。如果表格字段只包含三个字符,那么应该有三个以 0 为前缀的字符。示例

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

限制

201

4000

结果

限制

000201

004000

我有以下代码,但这会后缀值,我需要在限制值前面加上 0。

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

【问题讨论】:

  • 数据库名称会很方便

标签: sql prefix


【解决方案1】:

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

SELECT FORMAT(201, '000000')

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

【讨论】:

    【解决方案2】:

    下面怎么做

    1. 在字符串前面加上六个零(这样你就够了)
    2. 获取该字符串的最后六个字母(去掉不需要的那些)

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

    【讨论】:

    • 感谢您的提示。环境是sql server 2008,这个环境有什么选择吗?
    猜你喜欢
    • 2012-01-12
    • 2012-06-14
    • 1970-01-01
    • 1970-01-01
    • 2012-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多