Sql server 如何在SQL中提取类似于正则表达式匹配的字符串?

Sql server 如何在SQL中提取类似于正则表达式匹配的字符串?,sql-server,tsql,Sql Server,Tsql,例如,我想删除以下字符串末尾的“(%”: 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 SQL Server不支持正则表达式(因此也不支持正则表达式的替换)

例如,我想删除以下字符串末尾的“(%”:

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

SQL Server不支持正则表达式(因此也不支持正则表达式的替换),但您可以使用它的
类似操作符:

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;

SQL Server不支持正则表达式(因此也不支持正则表达式的替换),但您可以使用它的
类似操作符:

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;