sql 截取某个字符之前的数据

例如:
CREATE PROCEDURE pim_Utility_ReadCRMSaleLead
AS

select A.ProjectName as '项目名称', A.SaleDistrict as '项目所在地',A.Address as '客户地址', A.RelateLead1 as '设计院',
A.BudgetNumber as '预计容量',A.Finish_On as '订货时间' ,
A.WorkStatus as '状态', B.FolderId
INTO #Temp0 from pimCRMSaleLead A ,pimCRMLead B
where A.CustomerId *= B.LeadID

update #Temp0 set #Temp0.项目所在地=C.Name FROM pimDataClassFolder C WHERE #Temp0.FolderId=C.FolderId

SELECT * FROM #Temp0
GO

执行后出现的结果:

七台河隆鹏焦化 华北区 七台河 众联盛太原公司+王振兴 [18339] NULL 2010-03-24 00:00:00 初次联系 10117
青海庆华焦化二期 华北区 青海 众联盛太原公司+王振兴 [18339] NULL 2010-03-24 00:00:00 初次联系 10117

我要把设计院字段中的+号面前的内容取出来。
例如:
查询结果中:众联盛太原公司+王振兴 [18339]
要的结果是:众联盛太原公司

上面的那个存储过程要怎要修改。在线等。十万火急`````

第1个回答  2020-02-17
创建测试表及数据
create table test
(name varchar2(10));
insert into test values ('2-15');
insert into test values ('2-33');
insert into test values ('2-3');
insert into test values ('12-8');
insert into test values ('12-22');
insert into test values ('12-3'); 执行
select name,substr(name,1,instr(name,'-')-1) 前,substr(name,instr(name,'-')+1,length(name)-instr(name,'-')) 后 from test截图
第2个回答  推荐于2016-08-29
CREATE PROCEDURE pim_Utility_ReadCRMSaleLead
AS

select A.ProjectName as '项目名称', A.SaleDistrict as '项目所在地',A.Address as '客户地址', SUBSTRING(1,CHARINDEX(‘+’,A.RelateLead1)- 1,LEN(A.RelateLead1)) as '设计院',
A.BudgetNumber as '预计容量',A.Finish_On as '订货时间' ,
A.WorkStatus as '状态', B.FolderId
INTO #Temp0 from pimCRMSaleLead A ,pimCRMLead B
where A.CustomerId *= B.LeadID

update #Temp0 set #Temp0.项目所在地=C.Name FROM pimDataClassFolder C WHERE #Temp0.FolderId=C.FolderId

SELECT * FROM #Temp0
GO本回答被提问者采纳
第3个回答  2010-05-26
select left(字段名称,CHARINDEX('+',字段名称) - 1)
from 表
相似回答