char类型不需要你管,如果你的值长度不到定义的长度,SQL自动会在后面补足空格.float类型没有办法修改长度,除非你用CHAR保存Float类型数据,这样才可以补0

解决方案 »

  1.   

    楼上说的对
    第一个问题你可以写一个存储过程来做,判断长度,然后决定在前面家多少空格
    第二个问题是你除非用char保存,否则用float是没办法得到你要的效果的
      

  2.   

    第一个问题写一个存储过程来做,先判断一下原来的长度,然后决定应当在前面加几个空格
    第二个问题除非你换了类型,否则用float没法实现你要的功能
      

  3.   

    把这两个类型全部设为char(20)类型了
    UPDATE 表 
    SET name =RIGHT(('       这里是20个空格               '+name),20)
        jin_er = RIGHT(('00000000000000000000'+jin_er),20)
      

  4.   

    可以用下面的方法:--1.修改表结构,使它符合你的要求:
    alter table 你的表 alter column name char(20)
    alter table 你的表 alter column name jin_er char(20)--2.修改数据,使它符合你的要求:
    update 你的表 set name=space(20-len(name))+name
         ,jin_er=replace(space(20-len(jin_er)),' ','0')+jin_er
      

  5.   

    数据修改语句改一下:
    update 你的表 set name=right(space(20)+rtrim(name),20)
         ,jin_er=replace(space(20-len(jin_er)),' ','0')+jin_er
      

  6.   

    ALTER TABLE 你的表 ALTER COLUMN [name] char(20)
    ALTER TABLE 你的表 ALTER COLUMN jin_er char(20)update 你的表 set [name]=SPACE(10)+right([name],10),jin_er=right(REPLICATE('0',20)+rtrim(jin_er),20)
      

  7.   

    如果你仅为了显示,就用:
    select name=right(space(20)+rtrim(name),20)
         ,jin_er=replace(space(20-len(jin_er)),' ','0')+cast(jin_er as varchar)
    from 你的表
      

  8.   

    ALTER TABLE 你的表 add [新字段名] char(40)
    update 你的表 set [新字段名]=right([name]+SPACE(20),20)+right(REPLICATE('0',20)+rtrim(jin_er),20)