想法是找到所有包含西里尔字母(俄语字符)的值。
就像是:
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
你有什么想法吗?
根据评论:
此问答提供了一种在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筛选器 ----------- ------------- ------------- 1个AName AName 2亚历山大1 3 Thirdname Thirdname
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句