[英]How to replace all occurrences of a string in SQL
我有一个数据如下
姓名 |
---|
0002_○●○; B0024_○●; |
0032_●○; 0041_○●○; D0030_○●; |
022_○●●; A0071_○●; 0080_●●○; C0150_○○○; |
○● 是非英文名
我希望得到以下结果
○●○; ○●;
●○; ○●○; ○●;
○●●; ○●; ●●○; ○○○;
我尝试使用replace来替换英文、数字、符号
select REPLACE(Names, '%[^A-Za-z0-9]%', '')
from test
但它没有用
我该如何修改它?
谢谢
如果您使用 SQL Server 2017+,则TRANSLATE()
和REPLACE()
是一种选择(......可能不是最好的):
DECLARE @pattern nvarchar(max) = N'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'
SELECT
REPLACE(
TRANSLATE(Names, @pattern, REPLICATE(N'A', LEN(@pattern))),
N'A',
N''
) AS Names
FROM (VALUES
(N'0002_○●○; B0024_○●;'),
(N'0032_●○; 0041_○●○; D0030_○●;'),
(N'0022_○●●; A0071_○●; 0080_●●○; C0150_○○○;')
) test (Names)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.