Как найти кириллицу (русские символы)?
Идея состоит в том, чтобы найти все значения, которые содержат кириллицу (русские символы).
Что-то вроде:
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
У тебя есть идеи?
1 ответ
Решение
Согласно комментарию:
Эти вопросы и ответы дают хороший способ сделать это на SQL-сервере (не может быть помечен как дубликат, так как это другой тип вопроса):
Решение:
select *, -- ▼ space added here
case when TheName like '%[^-A-Za-z0-9 /.+$]%'
then '1'
else TheName
end as 'Filter'
from CyrillicTest
Вы можете настроить строку RegEx так, чтобы она соответствовала всем символам кириллицы, или настроить ее так, чтобы она соответствовала именам ASCII, написанным через дефис (и всем остальным, что родители помещают в имена своих детей). Я не уверен в скорости этой игры на большом столе, поэтому, пожалуйста, проверьте это.
Testbed:
create table CyrillicTest
( TheID int identity(1,1) not null,
TheName nvarchar(50) not null )
insert CyrillicTest
( TheName )
values
( 'AName' ),
( 'Александр' ),
( 'CName' )
Выход:
TheID TheName Фильтр ----------- ------------- ------------- 1 имя 2 Александр 1 3 Третье имя Третье имя