读书人

版主还是字符提取有关问题!请求帮忙

发布时间: 2012-12-23 11:28:15 作者: rapoo

版主,各位高手,还是字符提取问题!!请求帮忙!!!
老大要是顺便能把图纸的图号,中括号中的内容,例如:“F352S-S0801-01-1/3”、“S0601(2)-24”、“F352S-S1202-11”例如和公司的名字,大括号中的内容,例如:“东北电力设计院”、“保定天威电气成套设备有限公司”提取出来的话,感激不尽!!!!非常感谢



表entity_index 中的dwgmc这一列
[最优解释]


create?table?tb20111110(dwgmc?varchar(60))
insert?into?tb20111110
select?'(aa)011-钢梯T6-091(0600-8022-501)[td-tl]{asdfsdf}'?union?all
select?'011-钢梯T6-091(0600-8022-505)[td-tl213]{asdfsdf}'?union?all
select?'011-钢梯T6-091[td-tl1231]{asdfsdf}'?union?all
select?'011-钢梯T6-091(0600-8022-501)[td-tl123]{asdfsdf}'

go
alter?table?tb20111110?alter?column?dwgmc?nvarchar(60)?collate?chinese_prc_ci_as_ws???
?
go
select?
????case?when?charindex('(',dwgmc)>0?and
????charindex(')',dwgmc)>0
????then?
????substring(dwgmc,charindex('(',dwgmc)+1,charindex(')',dwgmc)-charindex('(',dwgmc)-1)
????else?'无'?end?as?dwgmc1,
case?when?charindex('[',dwgmc)>0?and
????charindex(']',dwgmc)>0
????then?
????substring(dwgmc,charindex('[',dwgmc)+1,charindex(']',dwgmc)-charindex('[',dwgmc)-1)
????else?'无'?end?as?dwgmc2,
case?when?charindex('{',dwgmc)>0?and
????charindex('}',dwgmc)>0
????then?
????substring(dwgmc,charindex('{',dwgmc)+1,charindex('}',dwgmc)-charindex('{',dwgmc)-1)
????else?'无'?end?as?dwgmc3

from?tb20111110?
/*
dwgmc1 dwgmc2 dwgmc3
----------------- ----------------- --------------
0600-8022-501 td-tl asdfsdf
0600-8022-505 td-tl213 asdfsdf
无 td-tl1231 asdfsdf
0600-8022-501 td-tl123 asdfsdf
*/

[其他解释]

--数据引用于你上个贴中的 (☆叶子☆)
--方法一样,其实楼主该学会举一反三的 学习下substring,charindex这2个函数
if OBJECT_ID('tb20111110') is not null drop table tb20111110
go
create table tb20111110(dwgmc varchar(60))
insert into tb20111110
select '(aa)011-钢梯T6-091(0600-8022-501)[td-tl]{东北设计院01}' union all
select '011-钢梯T6-091(0600-8022-505)[td-tl213]{东北设计院002}' union all
select '011-钢梯T6-091[td-tl1231]{asdfsdf}' union all
select '011-钢梯T6-091(0600-8022-501)[td-tl123]{东北设计院0003}'

select
case when charindex('[',dwgmc)>0 and
charindex(']',dwgmc)>0
then
substring(dwgmc,charindex('[',dwgmc)+1,charindex(']',dwgmc)-charindex('[',dwgmc)-1)
else '无' end as 编号
,
case when charindex('{',dwgmc)>0 and
charindex('}',dwgmc)>0
then
substring(dwgmc,charindex('{',dwgmc)+1,charindex('}',dwgmc)-charindex('{',dwgmc)-1)
else '无' end as 公司
from tb20111110

/*
编号公司
---- ----


td-tl东北设计院01
td-tl213东北设计院002
td-tl1231asdfsdf
td-tl123东北设计院0003
*/

读书人网 >SQL Server

热点推荐