Как извлечь строку в SQL, похожую на совпадение с регулярным выражением? - PullRequest
0 голосов
/ 20 марта 2019

Например, я хочу удалить '(%)' с конца следующих строк:

select '07777 123456(s)' as [Number1]
select '07777 456789(p)' as [Number2]
select '+44 (0)7777 123456' as [Number3]

-- RESULTS
----------
-- 07777 123456
-- 07777 456789
-- +44 (0)7777 123456

1 Ответ

2 голосов
/ 20 марта 2019

SQL Server не поддерживает REGEX (и, следовательно, замену Regex), но вы можете использовать оператор LIKE:

WITH CTE AS(
    SELECT '07777 123456(s)' AS Number
    UNION ALL
    SELECT '07777 456789(p)'
    UNION ALL
    SELECT '+44 (0)7777 123456')
SELECT CASE WHEN Number LIKE '%(_)' THEN LEFT(Number, LEN(Number) -3) ELSE Number END
FROM CTE;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...