【问题标题】:Select query with length issue [duplicate]选择有长度问题的查询[重复]
【发布时间】:2012-10-01 08:30:12
【问题描述】:

可能重复:
Most efficient T-SQL way to pad a varchar on the left to a certain length?

我有一个客户表,其中客户 ID 的长度为:10 但是长度为3或5的客户很少

ex: 
3445
34
789
7800

但输出应该如下所示,如果长度小于10,我需要在此处添加前缀零

0000003445
0000000034
0000000789
0000007800

获取此数据的脚本是:

select customerID from customer

【问题讨论】:

    标签: sql-server-2008


    【解决方案1】:

    试试下面的代码:

    由于您使用的是 sql server 2008,您可以使用复制功能将零添加到值..

    Select ltrim(right(replicate(0,10) + <column>,10)) 
    from your_table
    

    【讨论】:

    • 这将避免计算零的必要性,但会更慢。
    • @NoobASThreeDeveloper:由于复制造成的缓慢可以忽略不计.. :)
    【解决方案2】:

    你可以这样使用...

    SELECT RIGHT('0000000000' + RTRIM('3445'), 10)
    

    在你的情况下,

    SELECT RIGHT('0000000000' + RTRIM(customerID), 10) AS New_CustomerID
    FROM Customer
    

    【讨论】:

      【解决方案3】:

      试试这个

      SELECT RIGHT('0000000000'+`customerID`, 10) FROM `customer`
      

      【讨论】:

        猜你喜欢
        • 2011-08-27
        • 2015-01-29
        • 2012-09-22
        • 2020-01-06
        • 2013-12-27
        • 2021-05-27
        • 2016-07-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多