zjcxc(邹建) 大侠我上面写错了,就是用rtrim不行啊,帮忙再看看

解决方案 »

  1.   

    1. 先把字段改为VARCHAR
    2. UPDATE 表 SET 字段 = RTRIM(字段)
      

  2.   

    1.如果你的字段类型为char,则去空格无效,因为char是定长的,去掉它会自动补回来2.字段后面的空格用,rtrim(字段)去掉这种方法是没错的.
      

  3.   

    --下面是关于此问题的测试--测试数据
    declare @t table(a char(6))
    insert @t select 'a'
    union all select 'aa'--查询
    select aa=a+'b',bb=rtrim(a)+'b'
    from @t/*--测试结果aa      bb      
    ------- ------- 
    a     b ab
    aa    b aab(所影响的行数为 2 行)
    --*/
      

  4.   

    从上面的测试,bb列可以看出,rtrim()已经正确地去掉了尾部的空格
      

  5.   

    zjcxc(邹建)您理解错了,我是说我的那个ltrim是我写错了,我的意思是说我本来就是用这个rtrim(字段)的,但去除不了,字段类型nvarchar
    数据是从dbase转入,请问如何处理?
      

  6.   

    没理由去不了,除非你的字段后面的不是空格.你用下面的语句测试一下字段的长度:
     
    select len(字段名),datalength(字段名) from 表
      

  7.   

    --下面是关于此问题的测试--测试数据
    declare @t table(a nvarchar(6))
    insert @t select 'a  '
    union all select 'aa  'select len(a),datalength(a)
    from @tupdate @t set a=rtrim(a)--查询
    select len(a),datalength(a)
    from @t/*--测试结果----------- ----------- 
    1           3
    2           4(所影响的行数为 2 行)
                            
    ----------- ----------- 
    1           1
    2           2(所影响的行数为 2 行)--*/
      

  8.   

    我定义的是nvarchar(20)
    select len(字段名),datalength(字段名) from 表
    结果
    11,30
     zjcxc(邹建)帮忙再看看
      

  9.   

    比如
    产品编号              名称
    A908DF00001           钢珠
    B789GF00002           螺钉  
    数据库中 A908DF00001   后面有空白的内容 要怎么处理,我用rtrim没用
      

  10.   

    --测试--测试数据
    declare @t table(a nvarchar(15))
    insert @t select 'A908DF00001'+space(15)
    union all select 'B789GF00002'+space(15)--更新前的数据
    select len(a),datalength(a) from @t--更新
    update @t set a=rtrim(a)--更新后的数据
    select len(a),datalength(a) from @t/*--测试结果--更新前----------- ----------- 
    11          30
    11          30(所影响的行数为 2 行)
    --更新后
                            
    ----------- ----------- 
    11          22
    11          22(所影响的行数为 2 行)
    --*/