mssql 在 varchar 字段中搜索无效拼写错误

mssql search a varchar field for invalid typo

我有一个包含名称的字段。他们可以是姓氏,名字中间 name/initial

基本上我想找到所有不是正常拼写的名字,这样我就可以告诉别人在系统中修正他们的名字。

我不想 select 找到这个人 O'Leary-Smith, Timothy L.

但我想找到这个人 <>[]}{@#$%^&*()/?=+_!|";:~`1234567890

我可以不断想出要搜索的特殊字符,但后来我只是在进行这个巨大的查询并且不得不用括号括起通配符......这就像 50 多行长只是为了说一件事。

有什么东西吗(不是一些自定义函数) 让我说

where name not like 
A-Z
a-z
,
.
'
-

可能是

where name contains anything but these ascii characters

希望这是一个修复;否定字符 class:

where patindex('%[^ A-Za-z,.''-]%', name) > 0

尽管名字中可以出现比 A-Z 更多的字母...

如果您要查找的只是奇怪的字符:

WHERE name like '%[^A-Za-z]%'

^ 充当 NOT 运算符。