Как насчет того, чтобы просто удалить все, начиная с последнего дефиса?
Вы можете сделать это с помощью stuff()
:
select stuff(str, len(str) - charindex('-', reverse(str)) + 1, len(str), '')
from (values ('Co-Host-Television'), ('Manager-News Delivery')) v(str);
Или еще лучше с помощью left()
:
select left(str, len(str) - charindex('-', reverse(str)) )
from (values ('Co-Host-Television'), ('Manager-News Delivery')) v(str);