के लिए एक विकल्प होगा का एक संयोजन का उपयोग Charindex
और Substring
. नोट: निम्न 100
अभी होना चाहिए की घोषणा की लंबाई के स्तंभ - charindex हमेशा पर रोक स्ट्रिंग के अंत.
इस की आवश्यकता नहीं है समाप्त कोष्ठक में, यह लग रहा है के लिए पिछले अंक.
with t as (
select * from (values
('ProALPHA - S - HTML Custom Table implementation (E001445)' ),
('IKA CP Implementation (Aus) (E001534-0001)' ),
('Test Engagment Integration: (E001637-0003) Non-billable' ),
('Customer requests customization for Analytics and Java Migration - E000797' ),
('Create list with customers renewing in H2 2020' )
)t(title)
)
select title,
Iif(title like '%E00%',Reverse(Substring(part,patindex('%[0-9]%',part),100)),null)
from t
cross apply (values( Reverse(Substring(t.title, CharIndex('E00',t.title), 100 )) ))x(part)
उदाहरण बेला
अद्यतन
तुम सकता है लागू ऊपर के रूप में एक परिकलित स्तंभ की मदद के साथ एक समारोह के लिए उपयोग को बदलने के लागू होते हैं.
यह ठीक हो सकता है अपने उपयोग के लिए मामला है, हालांकि मैं सुझा का उपयोग करके देखें यदि सभी संभव नहीं.
create function dbo.E00_Part(@title varchar(100))
returns varchar(100)
as
begin
return (select Reverse(Substring(@title, CharIndex('E00',@title), 100 )))
end
create table T (title varchar(100),
Computed as Iif(title like '%E00%',
Reverse(Substring(dbo.E00_Part(title),patindex('%[0-9]%',dbo.E00_Part(title)),100)),null))
देखें डेमो बेला 2