数据库中有字段visiteaddress(备注:有主键)
示例数据如下: 1  韩国 电信value
             2  日本  www.98bk.comvalue
             3  黎巴嫩  www.98bk.comvalue
             4  哥伦比亚 波哥大value
             5  阿尔及利亚  www.98bk.comvalue
             6  日本 Tokyo.OCN用户value
要求只取出中文,先谢谢各位了!!!(最好能只要国家名)

解决方案 »

  1.   

    Create Function get_Zhongwen(@S Nvarchar(2000))
    Returns Nvarchar(2000)
    As
    Begin
    Declare @ReturnS Nvarchar(2000)
    Select @ReturnS = ''
    While PatIndex(N'%[吖-座]%', @S) > 0
    Select @ReturnS = @ReturnS + Substring(@S, PatIndex(N'%[吖-座]%', @S), 1),
     @S = Stuff(@S, 1, PatIndex(N'%[吖-座]%', @S), '')
    Return @ReturnS
    End
    GO--测试
    Declare @S Nvarchar(2000)
    Select @S = N'jinjazz韩国   电信value '
    Select dbo.get_Zhongwen(@S)
    drop function get_Zhongwen
    /*
    韩国电信(1 行受影响)
    */
      

  2.   

    SELECT SUBSTR(visiteaddress,1,INSTR(visiteaddress,' ')) FROM 表名
    大体上这样写吧,函数具体用法不对的话你再查查
    SUBSTR 取子字符串
    INSTR 得到第一个空格在字段中的位置
    这样可以得到字段空格前面的国家名
      

  3.   

    select 国家 from [table]
      

  4.   

    这条ORACLE语句我测过了,取得字段中“板”前面的字符
    SELECT SUBSTR(P_NAME,1,INSTR(P_NAME,'板')) FROM T_K04_PRODUCT你的应该就是
    SELECT SUBSTR(visiteaddress,1,INSTR(visiteaddress,' ')) FROM 表名
      

  5.   

    各位不行啊,以上函数在access中没有对应的函数!
      

  6.   

    我在server2000测试通过:SELECT   substring(phone,0,charindex(' ',phone))   FROM   authors
    可是在access中不行的各位帮帮我吧!
    我想能不能通过判断字节的长度来取啊,?????????
      

  7.   

    access中的instr函数
    instr(1,"111","'")
    第一个参数:其实位置
    第二个参数:字符串或者列名
    第三个参数:查找的字符
    返回字符的位置索引SUBSTR可以用MID或者LEFT函数取代,具体用法你查查,差不多的
      

  8.   

    楼上正确,反正我也前就是这样的ascii('字符')>128就不是字母了  这样就好办了撒
      

  9.   

    谢谢已经解决:
    SELECT   Mid(phone,0,instr(1,phone,'  '))   FROM  biao