如何使用sql存储过程在一些字符(varchar)之后添加尾随空格?

时间:2016-08-10 05:28:11

标签: mysql sql stored-procedures

我需要显示输出数据,我需要为每列添加/替换带有固定长度的空格。每列可能有不同的长度。

select  top (20)        
        patname + REPLICATE(' ', 30 - DATALENGTH(patname)) AS NAME,
        RefNo + REPLICATE(' ', 15 - DATALENGTH(RefNo)) AS REFNO,
        ClaimAmt AS AMOUNT    
    from  AR_Ebilling

需要设置字段长度:

NAME = 30 varchar,REFNO = 15 varchar,AMOUNT = 10 money / decimal,

预期输出结果:

NAME                           REFNO           AMOUNT
Ahmad Kasan                    1235            00000000565.93               
Amirah                         AY582M8D       -00023441200.23                   
Paul                           0ST127          00000004234.45      

TQ

1 个答案:

答案 0 :(得分:1)

答案是不要!一个不会在数据库中存储冗余数据。所有这些空格并不是真正需要存储的,因为用你喜欢的编程语言填充字符串甚至用mysql本身来填充字符串是一件小事。为此,mysql已经:

RPAD

  

返回字符串str,右边填充字符串padstr为a   len个字符的长度。如果str比len长,则返回值   缩写为len个字符。

LPAD

  

返回字符串str,左边填充字符串padstr为一个长度   len个字符。如果str长于len,则返回值为   缩写为len个字符。

另请注意,在表格中不必要地存储填充字符串会使VARCHAR无效。