34,591
社区成员
发帖
与我相关
我的任务
分享
declare @tb table (c_name varchar(1000))
insert into @tb(c_name)
select '单位:检次:0 分组:体检人员:[180143]某某某 增加项目:[0911]妇科检查 支付方式:个人支付' union all
select '单位:检次:0 分组:体检人员:[180143]某某某 增加项目:[3203]白带常规 支付方式:个人支付' union all
select '单位:检次:0 分组:体检人员:[180143]某某某 增加项目:[0201]内科 支付方式:个人支付' union all
select '单位:检次:0 分组:体检人员:[180143]某某某 增加项目:[0301]外科 支付方式:个人支付' union all
select '单位:检次:0 分组:体检人员:[180143]某某某 增加项目:[0607]肝功能十二项 支付方式:个人支付' union all
select '单位:检次:0 分组:体检人员:[180143]某某某 增加项目:[2343]双入彩超(含图文) 支付方式:个人支付' union all
select '单位:检次:0 分组:体检人员:[180143]某某某 增加项目:[2341]甲状腺彩超(含图文) 支付方式:个人支付' union all
select '单位:检次:0 分组:体检人员:[180143]某某某 增加项目:[0304]女外科 支付方式:个人支付' union all
select '单位:检次:0 分组:体检人员:[180143]某某某 增加项目:[0205]女内科 支付方式:个人支付'
select substring(a.name,charindex('[',a.name)+1,charindex(']',a.name)-charindex('[',a.name)-1) as 编号
, substring(a.name,charindex(']',a.name)+1,LEN(a.name)) as 编号
from (
select c_name,
substring(c_name,charindex('增加项目',c_name)+4,charindex('支付方式',c_name)-charindex('增加项目',c_name)-4) as name
from @tb
where charindex('增加项目',c_name)>0 and charindex('支付方式',c_name)>0
)as a
---------------------------------------------
编号 项目
----------- -----------
0911 妇科检查
3203 白带常规
0201 内科
0301 外科
0607 肝功能十二项
2343 双入彩超(含图文)
2341 甲状腺彩超(含图文)
0304 女外科
0205 女内科
(9 行受影响)
declare @a varchar(1000)='体检项目:全身 体检人员:108954 增加项目:[0911]内科 支付方式:个人支付'
select SUBSTRING(@a,CHARINDEX('增加项目',@a),CHARINDEX(' ',@a,CHARINDEX('增加项目',@a))-CHARINDEX('增加项目',@a))
select SUBSTRING(@a,CHARINDEX('增加项目',@a),CHARINDEX(' ',@a,CHARINDEX('增加项目',@a))-CHARINDEX('增加项目',@a))
--查"妇科检查"、"内科"、"外科"等这些内容
select substring(col,(charindex('目',col)+2),4)
提取内科、外科、妇科检查前面[]中的这些编号
select substring(col,(charindex('目',col)+7),(charindex('支',col)-charindex('目',col)-8))
--把col换成你的字段,from、where什么的自己加下,试试
select col_name, substring(col_name,charindex('增加项目',col_name)+4,charindex('支付方式',col_name)-charindex('增加项目',col_name)-4)
from table_name
where charindex('增加项目',col_name)>0 and charindex('支付方式',col_name)>0