SELECT ShopNO,Name,ltrim(rtrim(Address)) As Address1,Pop3 FROM etam.dbo.etamshop

解决方案 »

  1.   

    我的address字段有的后面跟了一些空格当我查询出来后,用楼上的,空格也是去不掉的其实rtrim函数就已经够了
    但是很奇怪阿
    rtrim没有起作用当我直接在数据库中把空格散掉后,才好使的阿
      

  2.   

    --e.g.
    declare @str nvarchar(100)
    set @str='    a    b    '
    select rtrim(@str) --去右边空格结果是'    a    b'
    select ltrim(@str) --去左边空格结果是'a    b    '
    select rtrim(ltrim(@str))          --去头尾空格结果是'a    b'
    select replace(@str,' ','')         --去所有空格结果是'ab'
      

  3.   

    SELECT ShopNO,Name,ltrim(rtrim(Address)) As Address1,Pop3 FROM etam.dbo.etamshop
    只能去掉字段中的前后空格,不能去掉中间的空格!
      

  4.   

    gmlxf(烛光)
    楼上的你说的函数我都知道
    可是在我这根本不起作用阿
    真的是一个很奇怪的问题
      

  5.   

    你后面的空格会不会是其他符号
    --tryselect replace(replace(col,char(10),''),char(13),'') from 
    (
    select 'a' + char(10) + char(10) + 'b' col
    ) a
      

  6.   

    我就是要去掉后面的空格阿
    我的问题说得这么不清除么在查询分析器,我用下面的语句
    declare @str11 as nvarchar(50)
    SELECT @str11=rtrim(Address)  FROM etam.dbo.etamshop where Shopno='813'
    set @str11 =rtrim (@str11)
    select @str11
    select len(rtrim(@str11))显示结果:
    兰州市七里河小西湖广场义乌商贸城旁          
    27
      

  7.   

    char(10)
    char(13)
    你看看。
      

  8.   

    gmlxf(烛光)
    可能你说的有道理因为我去的数据,是别的数据库中的内容,我不清楚她添加记录时是什么样的一种情况我打开那个数据库,没看到什么特殊的字符
      

  9.   

    declare @str11 as nvarchar(50)
    SELECT @str11=rtrim(replace(replace(Address,char(10),''),char(13),''))  FROM etam.dbo.etamshop where Shopno='813'
    set @str11 =rtrim (@str11)
    select @str11
    select len(rtrim(@str11))这样以后,长度短了一些,不过好像还有别的字符
    谢谢gmlxf(烛光)
    等我问一下我那个同事,就应该知道是怎么一回事了
      

  10.   

    select ascii(right(col,1)) asc码 from etam.dbo.etamshop where Shopno='813'
    你看看是什么数字?
    是空格吗?空格是32
      

  11.   

    我打开那个数据库,没看到什么特殊的字符
    --------
    是看不到的
    不过你在查询分析器里面可以看到的
    你先按ctrl+t
    然后执行:
    select Address from etam.dbo.etamshop where Shopno='813'
      

  12.   

    是:10select  ascii(right(Address,1))  asc码  from  etam.dbo.etamshop  where  Shopno='813' 结果显示:10
      

  13.   

    Address                                            
    -------------------------------------------------- 
    兰州市七里河小西湖广场义乌商贸城旁 安你的方法,上面是显示结果,没什么特别的阿
      

  14.   

    我用你的方法看了一下(select  ascii(right(Address,1))  asc码  from  etam.dbo.etamshop  where  Shopno='813' )
    里面有好多换行符,还有制表符(9,10,13)
    号奇怪啊,里面还有这样的东西
      

  15.   

    所有你要将你的换行符号替换掉。
    为了简单,你可以将你的address里面的换行回车符号替换掉。
      

  16.   

    replace(replace(replace(Address,char(10),''),char(13),''),char(9),'')这样以后就好了
    长度就对了
    谢谢你--gmlxf(烛光)
      

  17.   

    你可以这样查看是否正常:
    按ctrl+t
    然后
    select Address + '---' from etam.dbo.etamshop  where  Shopno='813' 
    这样应该都可以看出那样字符了,如果---不是紧接在后面,那就不正常的。