Вот способ, который ищет CUSTOMER NAME
:
with params as (
select ' CUSTOMER NAME: ' as custname
)
select t.*,
(case when t.col like '%' + custname + '%'
then s2.s2
end) as customer_name
from params cross join
t outer apply
(select substring(t.col, charindex(custname, col + custname), len(col))as s1
) s1 outer apply
(select stuff(left(s1.s1, charindex('|', s1.s1 + '|') - 2),
1, len(custname) + 1, ''
) as s2
) s2;
Это должно работать, если customer_name
находится в конце строки, независимо от порядка значений и даже если 'CUSTOMER NAME'
вообще отсутствует в строке.
Конечно, если вы используете SQL Server 2016, тогда лучше использовать решение, использующее split_string()
.