sql - 如何替换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)
推荐阅读
- ruby-on-rails - 由于 psql 权限,无法在生产环境中执行 rake 任务
- node.js - NodeJS Mongoose 关系外键
- excel - 如何将路径声明为变量?
- python - 计算属于一本字典一部分的字典数量
- python - 如何开始写入文本文件 2 行
- node.js - Website is hosted, I can access it, but my friend cannot reach it?
- python - 如何在一行.csv 中更改xml 文件?
- php - 如何对共享同一日期的变量求和?
- excel - 基于文本有条件地格式化(颜色填充)选定单元格的代码
- powershell - 如何显示引发 Powershell 异常的行号