我有一些看起来像这样的数据:
SourceOfBooking
----------------
Company1 (Foo)
Company2 (Bar)
Company3 (Foo1)
Company4 (Foo2)
我希望转换它,所以我的数据只显示:
SourceOfBooking
----------------
Company1
Company2
Company3
Company4
我试过了:
LEFT(SourceOfBooking, CHARINDEX(';', SourceOfBooking) )
没有运气。
我确定我错过了一些非常简单的事情......任何人都在关心启发?
KR,詹姆斯。
答案 0 :(得分:18)
我认为你只是把一个错误的角色
case
when CHARINDEX('(', SourceOfBooking) > 0 then
rtrim(left(SourceOfBooking, CHARINDEX('(', SourceOfBooking) - 1))
else
SourceOfBooking
end
答案 1 :(得分:3)
你可以;
LEFT(SourceOfBooking, CHARINDEX(' (', SourceOfBooking + ' (') - 1)
(如果需要,请移除+ ' ('
;它允许没有 (
答案 2 :(得分:1)
这将返回公司名称,无论是否有括号,并且还将处理括号前没有空格的情况:
select case
when CHARINDEX('(', SourceOfBooking) > 0
then RTRIM(LEFT(SourceOfBooking, CHARINDEX('(', SourceOfBooking) - 1))
else SourceOfBooking
end
from Table1
答案 3 :(得分:0)
你可以尝试一下。
创建一个新表并按以下脚本插入数据。然后执行select查询。您将获得所需的输出。
create table teststring
(name varchar(20))
insert into teststring values ('ashish (123)')
insert into teststring values ('ashish jain (123)')
select substring(name,1,charindex('(',name)-1)abc ,name from teststring