หนึ่งตัวเลือกจะเป็นเพื่อใช้กับส่วนผสมของ 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