Итак, вам нужно взять что-нибудь между последним набором открытых и закрывающих скобок в конце строки, верно?
Прежде всего, найдите первую открывающую скобку с конца строки. Я бы использовал CHARINDEX, так как вы просто ищете один символ; вам не нужно использовать сопоставление с образцом.
SELECT LEN(ProgrammeName) + 1 - CHARINDEX('(', REVERSE(ProgrammeName)) FROM Table
Затем найдите первую закрывающую скобку в конце строки:
SELECT LEN(ProgrammeName) + 1 - CHARINDEX(')', REVERSE(ProgrammeName)) FROM Table
Тогда, сложите их вместе. Чтобы использовать SUBSTRING, вам нужна позиция первого символа, затем длина строки, которую вы хотите, поэтому вам нужен первый результат (позиция '('), а затем второй результат минус первый результат, чтобы получить длина бита в скобках в качестве отправной точки:
SELECT (LEN(ProgrammeName) + 1 - CHARINDEX(')', REVERSE(ProgrammeName))) - (LEN(ProgrammeName) + 1 - CHARINDEX('(', REVERSE(ProgrammeName))) FROM Table
Вам также нужно немного поиграть, чтобы извлечь часть между скобками, оставив скобки в покое. Это объясняется в комментариях к последнему примеру, где последнее выражение должно выполнять ту работу, которую вы хотите:
SELECT
-- Position of first bracket
LEN(ProgrammeName) + 1 - CHARINDEX('(', REVERSE(ProgrammeName)),
-- Position of second bracket
LEN(ProgrammeName) + 1 - CHARINDEX(')', REVERSE(ProgrammeName)),
-- Position of second bracket minus position of first bracket gives length
(LEN(ProgrammeName) + 1 - CHARINDEX(')', REVERSE(ProgrammeName))) - (LEN(ProgrammeName) + 1 - CHARINDEX('(', REVERSE(ProgrammeName))),
-- If we want to extract the bit between the brackets, we need to start from the bracket position
-- plus one character, and knock one off the length, to avoid grabbing the closing bracket.
SUBSTRING(ProgrammeName, 1 + LEN(ProgrammeName) + 1 - CHARINDEX('(', REVERSE(ProgrammeName)), (LEN(ProgrammeName) + 1 - CHARINDEX(')', REVERSE(ProgrammeName))) - (LEN(ProgrammeName) + 1 - CHARINDEX('(', REVERSE(ProgrammeName))) - 1)
FROM
Table
Я разбил свой ответ, чтобы вы могли видеть, как я подхожу к таким проблемам - делайте их по одному, проверяя результаты по мере продвижения, и вам легче разобраться.