某一个字符字段列设置为10位
但实际上一般输入8位
怎么能让后2位自动补成空格
我在程序中读取的时候读取的是有空格的值
例如
字段值为 12345678
读取的值为 12345678##
##代表空格
字段类型设置为char还是varchar 
用什么函数可以做到这个功能

解决方案 »

  1.   


    --直接字段类型设置为char(10),输入'12345678'后好像就自动补2个空格的,LZ可以试试
    --要么就varchar(10)
    select right('12345678'+'##########',10)
    --ps:#代表空格,'12345678'代表你的输入,思路就是你输入的值后面加10个空格,然后取最右边10位
      

  2.   

    select left(ltrim(12345678)+'##########',10)/*
    --------------------
    12345678##(1 行受影响)
    */
    如果你输入的数据大雨10位呢,该是怎样的情况?
      

  3.   

    MSSQL没有 rpad函数 但是可以自己写一个
      

  4.   


    create function rpad(@source varchar(1000),@lenth int,@fill varchar(1))
    returns varchar(2000)
    as
    begin
       delcare @cnt int
       set @cnt =@lenth-len(@source)
       if(@cnt<=0)
       begin
         return @source
       end 
       else
       begin
    while(@cnt>0)
      set @source=@source+@fill
      set @cnt=@cnt-1
        end
    return @source
       end
    end
    select rpad([字段],10,' ') from tablename
      

  5.   

    select right('12345678'+'##########',10)
      

  6.   

    字段类型设置为char(10),系统自动在右侧补空格