--如果帮你写成这样,下面插入你自己写吧
create table cheliang
(厂牌型号 nvarchar(1000),
 车号 nvarchar(1000))insert into cheliang
select '星王ZA6600C', '粤HU0532'  union all
select '扬子YZL6603B', '粤HU0598'  union all
select '桂林GL6600C1', '粤HU0092'  union all
select '武陵源WLY6600', '粤HU0077'
select 厂牌型号 AS 厂牌,
substring(厂牌型号,patindex('%[A-Z,0-9,A-Z]%',厂牌型号),len(厂牌型号)) as 型号,
车号
from cheliang----------------------------------------------
星王ZA6600C ZA6600C         粤HU0532
扬子YZL6603B YZL6603B         粤HU0598
桂林GL6600C1 GL6600C1         粤HU0092
武陵源WLY6600 WLY6600         粤HU0077

解决方案 »

  1.   

    --稍微改一点
    select replace(厂牌型号,
    substring(厂牌型号,patindex('%[A-Z,0-9,A-Z]%',厂牌型号),len(厂牌型号)),'') AS 厂牌,
    substring(厂牌型号,patindex('%[A-Z,0-9,A-Z]%',厂牌型号),len(厂牌型号)) as 型号,
    车号
    from cheliang---------------------
    星王 ZA6600C 粤HU0532
    扬子 YZL6603B 粤HU0598
    桂林 GL6600C1 粤HU0092
    武陵源 WLY6600 粤HU0077
      

  2.   

    谢谢 didoleo(冷月无声)。
    但还有一点问题,原表有些行只是有型号例如“星王”,但是后面是没有跟型号的。如果照你这种方法做的话,这种特殊情况的结果就是“星王”这个真正的厂牌在新表中被拆分开了。
    如下:
    厂牌    型号
    王      星
      

  3.   

    --那加个case when 判断一下有没有型号吧
    select 
    case when patindex('%[A-Z,0-9,A-Z]%',厂牌型号)>0 then 
    replace(厂牌型号,substring(厂牌型号,patindex('%[A-Z,0-9,A-Z]%',厂牌型号),len(厂牌型号)),'') 
    else 厂牌型号 end
    AS 厂牌,
    case when patindex('%[A-Z,0-9,A-Z]%',厂牌型号)>0 then 
    substring(厂牌型号,patindex('%[A-Z,0-9,A-Z]%',厂牌型号),len(厂牌型号)) 
    else '' end
    as 型号,
    车号
    from cheliang