想法是找到包含 Cyrillic 字体(俄语字符)的所有值。
类似的东西:
SELECT CASE
WHEN Name LIKE /* Cyrillic font / russian characters */ THEN '1'
ELSE Name
END AS Filter
我找不到任何有关它的信息,所以我无法提供我尝试过的内容。
例如:
Name
Александр -- This is Cyrillic (have russian characters, should return 1)
John -- This should be returned as normal Name
你有什么想法吗?
答案 0 :(得分:1)
根据评论:
This Q&A提供了一种在SQL-Server中执行此操作的好方法(不能将其标记为重复,因为它是另一种类型的问题):
解决方案:
select *, -- ▼ space added here
case when TheName like '%[^-A-Za-z0-9 /.+$]%'
then '1'
else TheName
end as 'Filter'
from CyrillicTest
您可以调整RegEx字符串以匹配所有西里尔字符,也可以调整它以适应带连字符的ASCII名称(以及父母为其孩子名称添加的所有其他奇怪的事物)。 我不确定对抗大桌子的速度,所以请测试一下。
试验台:
create table CyrillicTest
( TheID int identity(1,1) not null,
TheName nvarchar(50) not null )
insert CyrillicTest
( TheName )
values
( 'AName' ),
( 'Александр' ),
( 'CName' )
输出:
TheID TheName Filter ----------- ------------- ------------- 1 AName AName 2 Александр 1 3 Thirdname Thirdname