现遇到对于我来说是一大难题,我从excel中导入数据到表中,中文名称字段中包括了中文字符和英文字符,英文字符中有分号作为分隔符,现在要把中英文分别放入对应的中文名称和英文名称字段中,且英文名称分为第一名称和第二名称,要以分隔符为分割点,分别把字符放入第一名称和第二名称中,针对已导入的数据进行操作,小弟初上手MS-SQL,实在是搞不懂,求指教,不胜感谢

解决方案 »

  1.   

    CREATE TABLE [TEST] (
    [cn] [varchar]  (50) NULL,
    [en_first] [varchar]  (50) NULL,
    [en_second] [varchar]  (50) NULL)INSERT [TEST] ([cn]) VALUES ( '猫;狗')
    INSERT [TEST] ([en_first],[en_second]) VALUES ( 'cat','dog')
    INSERT [TEST] ([cn]) VALUES ( 'bird;fish')
    INSERT [TEST] ([cn]) VALUES ( 'tiger;lion')
    表中要把第三行,第四行放成和第二行差不多的样子,怎么写sql语句,求指教,谢谢
      

  2.   

    更新么?update [TEST] 
    set en_first=left(cn,charindex(';',cn)-1),en_second=right(cn,len(cn)-charindex(';',cn))
    where charindex(';',cn)>0
      

  3.   


    UPDATE TEST SET [en_first] = LEFT(cn,CHARINDEX(';',CN) - 1) ,en_second = RIGHT(cn,LEN(cn) - CHARINDEX(';',CN)) WHERE LEFT(cn,CHARINDEX(';',CN) - 1) LIKE '%[a-zA-Z]%' AND RIGHT(cn,LEN(cn) - CHARINDEX(';',CN)) LIKE '%[a-zA-Z]%'
    只更新英文中文不动
      

  4.   

    update [TEST] 
    set en_first=left(cn,charindex(';',cn)-1),en_second=right(cn,len(cn)-charindex(';',cn))
    where charindex(';',cn)>0 and patindex('%[A-z]%')>0
      

  5.   

    update [TEST] 
    set en_first=left(cn,charindex(';',cn)-1),en_second=right(cn,len(cn)-charindex(';',cn))
    where charindex(';',cn)>0 and patindex('%[A-z]%',cn)>0