Объединение функций LTRIM и RTIM и REPLACE в MSSQL

У меня есть поле в таблице, в котором есть как ведущие, так и конечные символы, которые я хотел бы удалить.

Это утверждение

SELECT FullName AS Category FROM dbo.inventory

производит этот результат в таблице (показан частичный результат):

  • Детали – Ремни: Z.360J8
  • Детали – Ремни: Z.360J14
  • Детали – Ремни: Z.36355-123
  • Детали – Пластмассы и каркас: Z.103196-001
  • Запчасти – Электрические кабели / шнуры: Z.P037153674

Я хотел бы удалить перед тире, который удалит «Части -» и все, переходящие к двоеточию: «поэтому меня можно оставить только с категорией и получить таблицу следующим образом:

  • Ремни
  • Ремни
  • Ремни
  • Пластмассы и рамка
  • Электрические кабели / шнуры

Я пробовал это и успешно удалял предыдущие «Части», но успешно сочетал оператор с удалением всего после двоеточия «:»

SELECT LTRIM (RTRIM (REPLACE (FullName, 'Parts -', ''))) AS Category FROM dbo.inventory

Производит этот результат:

  • Ремни: Z.360J8
  • Ремни: Z.360J14
  • Ремни: Z.36355-123
  • Пластмассы и каркас: Z.103196-001
  • Электрические кабели / шнуры: Z.P037153674

Спасибо за помощь!

    Метод с использованием LEFT & CHARINDEX:

    SELECT REPLACE(LEFT(FullName, CHARINDEX(':', FullName) - 1), 'Parts - ', '') 

    CHARINDEX находит номер индекса символа двоеточия в полной строке, -1 включен для его удаления. LEFT затем усекает строку в эту позицию. Функция REPLACE, как и в вашем первоначальном примере, удаляет часть «Parts -» (обратите внимание, что я включил пробел после дефиса).

    LTRIM и RTRIM удаляют только верхние / конечные пробелы соответственно, поэтому они не будут полезны здесь.

    Код для обработки строк, не содержащих двоеточия (возвращает пустую строку):

     SELECT REPLACE(REPLACE(LEFT(Fullname, CHARINDEX(':', Fullname)), 'Parts - ', ''), ':', '') 
    Давайте будем гением компьютера.