首页 > 解决方案 > 在 T-SQL 中对字符范围使用通配符

问题描述

我目前正在使用REPLACE替换以下可能在客户名称中找到的字符。但是,这样做非常乏味。

有谁知道是否有办法使用列表格式来做到这一点,例如,像这样的通配符:LIKE ['.',',']而不是每次都写替换?

REPLACE(REPLACE(REPLACE(REPLACE(dname,'.',''),'`',''),'''',''),'  ',' ')))

标签: sql-servertsqlwildcardsql-server-2016

解决方案


我们不知道版本,但如果你只有 2016+TRANSLATE可能在这里工作得很好:

DECLARE @ReplaceChars varchar(50) = '.''`(){}[]!"£$%^&*-=_+';

SELECT REPLACE(REPLACE(TRANSLATE(YourColumn, @ReplaceChars, REPLICATE(LEFT(@ReplaceChars, 1), LEN(@ReplaceChars)),LEFT(@ReplaceChars,1),''),'  ',' ')
FROM ...

您仍然需要REPLACE在最左边使用字符,以及双空格。


推荐阅读