还是字段拆分问题?
我要处理的是N行这样的字段要拆分,而且不是都是像下面这样的规则:   
 热轧普通碳素H型钢\H300×200×8×12mm\Q235B   
 这已经用 '\ '标记出三段了,我要处理的是底下这样的情况:   
 热轧\普通碳素\H型钢\H300×200×8×12mm\Q235B   
 中间可能有很多 '\ '标记,但是还是要把它分成三部分,比如拆分成下面的形式: 
 /* 
 热轧\普通碳素               H型钢\H300×200×8×12mm                     Q235B   
 如何解决?   
 前面我已经问过一个类似的问题,已经结贴了,先谢谢大家了! 
------解决方案--------------------数据没有固定的拆分规则,很难用程序拆分。
------解决方案------------------------创建测试数据 
 declare @t table(name varchar(100)) 
 insert @t  
 select  '热轧普通碳素H型钢\H300×200×8×12mm\Q235B ' union all 
 select  '热轧\普通碳素\H型钢\H300×200×8×12mm\Q235B '     
 ----查询(当名称中的 "\ "大于3时保存第一个和倒数第二个 "\ ",其它的替换为1个空格,否则不作处理) 
 SELECT name =  
 --判断 "\ "的数量是否大于3 
 case when charindex( '\ ',name,charindex( '\ ',name,charindex( '\ ',name,1) + 1) + 1) >  0 
 then  
 --先将第一个和倒数第二个 "\ "替换成char(10),然后将其它 "\ "替换成一个空格 
 --最后再将char(10)替换回 "\ " 
 replace(replace(reverse(stuff(reverse(stuff(name,charindex( '\ ',name,1),1,char(10))), 
 charindex( '\ ',reverse(stuff(name,charindex( '\ ',name,1),1,char(10))), 
 charindex( '\ ',reverse(stuff(name,charindex( '\ ',name,1),1,char(10))),1) + 1),1,char(10))), '\ ', '  '),char(10), '\ ') 
 else name end 
 FROM @t      
 /*结果 
 name 
 -------------------------------------- 
 热轧普通碳素H型钢\H300×200×8×12mm\Q235B 
 热轧\普通碳素 H型钢\H300×200×8×12mm Q235B 
 */
------解决方案--------------------纠正一下:上面回复中说明部分的 "大于3 "应该为大于等于3或者大于2。
------解决方案--------------------这么智能的东西不好做. 
 除非有一定的规则
------解决方案--------------------那要是有這麼多\呢? LZ乍拆?   
 热\轧\普\通\碳\素\H\型\钢\H\3\0\0\×\2\0\0\×\8\×\1\2\m\m\Q\2\3\5\B 
------解决方案--------------------应该考虑建立模型表来匹配, 
 如H型钢这样的字段应该是有限多的,记录到模型表以便查找
------解决方案--------------------没有规则啊,怎么拆?