SELECT REPLACE(' 张 学 友 ',' ','')

解决方案 »

  1.   

    解决方案,做一个函数(SQL Server 2K才支持,7.0以前,只能用存储过程),算法描述如下:
    1 一个一个截取出来,汉字和英文字符的ascii码不一样。汉字有两个字节组成,并且都是>127。这是判断同英文字符的差别
    2 如果是汉字,中间的空格就丢弃掉
    3 如果是英文+空格+汉字,或者汉字+空格+英文,就看你自己的需求了。
    具体,可以参考,我回答的关于半个汉字的问题。
    http://expert.csdn.net/Expert/topic/1901/1901102.xml?temp=.3438379
      

  2.   

    select * from yourtable where charindex(' ',name)>0 and ascii(ltrim(name))>127
    replace yourtable set name=replace(name,' ','') where charindex(' ',name)>0 and ascii(ltrim(name))>127
      

  3.   

    ascii码大于127的为汉字,如果名字里面要么是汉字(含空格)要么是字母(含空格),上面的就可以了
      

  4.   

    我想SQL语句应该有如下分解动作:
    (1)将表中含有空格的记录找出来;答:select * from YourTable where Colname like '% %'(2)去掉空格。不管空格在哪个位置,也不管空格有多少,全部去掉;
    答:update yourtable set colname=replace(colname,' ','') where colname like '% %'
    (3)将去掉空格后的记录更新会原表。
    答:不清楚何意!~
      

  5.   

    update 表 set 字段名=REPLACE(字段名,' ','')
      

  6.   

    再讲得详细些,举例说明:请先将下段语句在查询器中执行:--创建Test数据库
    USE Master
    GOCREATE DATABASE Test
    ON 
    ( NAME = Test_dat,
       FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL\Data\Test_data.mdf',
       SIZE = 10MB,
       MAXSIZE = 50MB,
       FILEGROWTH = 2MB )
    LOG ON
    ( NAME = 'Test_log',
       FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL\Data\Test_log.ldf',
       SIZE = 5MB,
       MAXSIZE = 25MB,
       FILEGROWTH = 2MB )
    GO--创建Test表
    USE Test
    GOCREATE TABLE Test(id int IDENTITY (1,1) NOT NULL,name nvarchar(50)) ON [PRIMARY]
    GO--插入样记录
    INSERT INTO Test (Name) VALUES   ('张学友')
    INSERT INTO Test (Name) VALUES   ('张学友 ')
    INSERT INTO Test (Name) VALUES   (' 张 学 友 ')
    INSERT INTO Test (Name) VALUES   ('  张学   友')
    INSERT INTO Test (Name) VALUES   ('Zhang Xue You')
    INSERT INTO Test (Name) VALUES   (' Zhang Xue You ')
    INSERT INTO Test (Name) VALUES   ('张 Xue You ')
    GO希望返回结果如下:
    1、张学友
    2、张学友
    3、张学友
    4、张学友
    5、Zhang(空格)Xue(空格)You
    6、Zhang(空格)Xue(空格)You
    7、张XueYou我要的是由原来的表变成结果表的详细语句。
      

  7.   

    update Test set Name=rtrim(ltrim(Name))
    update Test set Name=replace(Name,' ','') where charindex(' ',Name)>0 and ascii(ltrim(Name))>127
      

  8.   

    update tab1 set
           name = replace(name,' ','') 
    where Unicode(ltrim(name)) <> ASCII(ltrim(name))
      

  9.   

    update tab1 set
           name = replace(name,' ','') 
    where Unicode(ltrim(name)) <> ASCII(ltrim(name))update tab1 set
           name = rtrim(ltrim(name))
    where Unicode(ltrim(name)) = ASCII(ltrim(name))
      

  10.   

    update 表 set 字段名=REPLACE(字段名,' ','')
      

  11.   

    经核查,plsql(风云)于2003-06-18 15:40:00 回答的内容,能够完全符合返回结果。
     
      

  12.   

    经核查,hillhx(曾经的曾经)于2003-06-18 16:51:00 回答的内容,能够完全符合返回结果。