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;