NAME
CHUN ON INVESTMENT COMPANY LIMITED (全安投資有限公司)
PO ON MARINE & FIRE INSURANCE AND GODOWN COMPANY LIMITED -THE-
DAIRY FARM COMPANY, LIMITED -THE- 牛奶有限公司
TUNG ON INVESTMENT COMPANY, LIMITED 同安置業有限公司
WING ON COMPANY LIMITED -THE- 永安有限公司
China Construction Bank (Asia) Corporation Limited 中國建設銀行(亞洲)股份有限公司数字据字段内容是这样的。怎样可以分开。。英文与中文分开
select Name form a

解决方案 »

  1.   

    WITH a1 (NAME) AS
    (
    SELECT 'NAME CHUN ON INVESTMENT COMPANY LIMITED (全安投资有限公司)' UNION all
    SELECT 'PO ON MARINE & FIRE INSURANCE AND GODOWN COMPANY LIMITED -THE- DAIRY FARM COMPANY, LIMITED -THE- 牛奶有限公司' UNION all
    SELECT 'TUNG ON INVESTMENT COMPANY, LIMITED 同安置业有限公司' UNION all
    SELECT 'WING ON COMPANY LIMITED -THE- 永安有限公司' UNION all
    SELECT 'China Construction Bank (Asia) Corporation Limited 中国建设银行(亚洲)股份有限公司'
    )
    ,a2 AS
    (
    SELECT a.name,MIN(b.number) number
    FROM a1 a,master.dbo.spt_values b
    WHERE CASE WHEN UNICODE(SUBSTRING(a.name,b.number,1))>255 OR UNICODE(SUBSTRING(a.name,b.number,1))<0 THEN b.number ELSE 0 END>0
    GROUP BY a.name
    )
    ,a3 AS
    (
    SELECT name,LEFT(name,number-1) eName,right(name,LEN(name)-number+1) cName
    FROM a2
    )
    SELECT CASE WHEN RIGHT(eName,1)='(' THEN LEFT(eName,LEN(ename)-1) ELSE ename END ename
    ,CASE WHEN left(cName,1)=')' THEN right(cName,LEN(cname)-1) ELSE cname END cname
    FROM a3
      

  2.   


    WITH a1 (NAME) AS
    (
    SELECT 'NAME CHUN ON INVESTMENT COMPANY LIMITED (全安投資有限公司)' UNION all
    SELECT 'PO ON MARINE & FIRE INSURANCE AND GODOWN COMPANY LIMITED -THE- DAIRY FARM COMPANY, LIMITED -THE- 牛奶有限公司' UNION all
    SELECT 'TUNG ON INVESTMENT COMPANY, LIMITED 同安置業有限公司' UNION all
    SELECT 'WING ON COMPANY LIMITED -THE- 永安有限公司' UNION all
    SELECT 'China Construction Bank (Asia) Corporation Limited 中國建設銀行(亞洲)股份有限公司'
    )
    ,a2 AS
    (
    SELECT a.name,MIN(b.number) number
    FROM a1 a,master.dbo.spt_values b
    WHERE CASE WHEN UNICODE(SUBSTRING(a.name,b.number,1))>255 OR UNICODE(SUBSTRING(a.name,b.number,1))<0 THEN b.number ELSE 0 END>0
    GROUP BY a.name
    )
    ,a3 AS
    (
    SELECT name,LEFT(name,number-1) eName,right(name,LEN(name)-number+1) cName
    FROM a2
    )
    SELECT CASE WHEN RIGHT(eName,1)='(' THEN LEFT(eName,LEN(ename)-1) ELSE ename END ename
    ,CASE WHEN right(cName,1)=')' THEN left(cName,LEN(cname)-1) ELSE cname END cname
    FROM a3
      

  3.   

    可以啦。但速度跟不上。我改成这样: select PATINDEX('%[^吖-座]%','中aass中中中11aaa中中') 速度好快但“(中文” 不能匹配
      

  4.   

    select PATINDEX('%[吖-座]%','hello你好')   等于 6
    select PATINDEX('%[吖-座]%','hello(你好')  等于 7   我要他输出也是6
    select PATINDEX('%[吖-座]%','h(ello你好')    等于 2   我要的是7
    select PATINDEX('%[(吖-座]%','h(ello(你好')  等于 2  我要的是7
      

  5.   

    select PATINDEX('%[吖-座]%','hello你好')   这个可以匹配到中文啦。。
    我想还要一个条件就是(中  也能匹配'%[吖-座|(吖-座]%' 这样也不行。他见到(也匹配
      

  6.   


    select PATINDEX('%[a|4]%','11adbb3b4ab') 3  对
    select PATINDEX('%[ab|4]%','11adbb3b4ab')3 错 应该是9才对
    这里应该怎样写
      

  7.   

    、select PATINDEX('%[吖-座]%','h(ello你好')  
    /*
    -----------
    7(1 行受影响)
    */
    select PATINDEX('%[ab|4]%','11adbb3b4ab')
    /*
    -----------
    3(1 行受影响)
    */这两个结果都是对的