日期:2014-05-17 浏览次数:20466 次
declare @str varchar(50)
set @str='上海市办事处客户办工单位00100 诸葛財大气粗'
select left(@str,patindex('%[0-9]%',@str)-1) as 单位,
SUBSTRING(@str,patindex('%[0-9]%',@str),LEN(@str)-len(left(@str,patindex('%[0-9]%',@str)-1))-len(right(@str,patindex('%[0-9]%',reverse(@str))-1))) as 编号,
right(@str,patindex('%[0-9]%',reverse(@str))-1) as 姓名
declare @str varchar(50)
set @str='某某单位101 姓名'
select substring(@str,1,patindex('%[0-9]%',@str)-1) as 单位,
substring(@str,patindex('%[0-9]%',@str),len(@str)-patindex('%[ ]%',reverse(@str))-(patindex('%[0-9]%',@str)-1))as 编号,
right(@str,patindex('%[0-9]%',reverse(@str))-1) as 姓名
/*
------ -------- -------
单位 编号 姓名
某某单位 101 姓名
*/
declare @str varchar(255)
set @str='四川省委101 姓名'
select
left(@str,patindex('%[0-9]%',@str)-1) as Company,
SUBSTRING(@str,patindex('%[0-9]%',@str),LEN(@str)-patindex('%[0-9]%',@str)+2-patindex('%[0-9]%',REVERSE(@str))) as Userid,
RIGHT(@str,CHARINDEX(' ',REVERSE(@str))-1) as 姓名
/*
Company Userid 姓名
四川省委 101 姓名
*/
select LEFT(列名,b.number),
SUBSTRING(列名, b.number+1,c.number-b.number),
right(列名,len(列名)-c.number),
a.* from 表名 a,master..spt_values b,master..spt_values c
WHERE b.type='P' and c.type='P'
and ASCII(substring(列名,b.number,1))>128 and ASCII(substring(列名,b.number+1,1))<128
and ASCII(substring(列名,c.number+1,1))=32