CREATE FUNCTION TranslitString(@string varchar(256)) RETURNS varchar(256) AS BEGIN DECLARE @return varchar(256) SET @return = UPPER(@string) SET @return = REPLACE(@return, 'АЙ', 'AY') SET @return = REPLACE(@return, 'ЕЙ', 'EY') SET @return = REPLACE(@return, 'ИЙ', 'IY') SET @return = REPLACE(@return, 'ОЙ', 'OY') SET @return = REPLACE(@return, 'УЙ', 'UY') SET @return = REPLACE(@return, 'ЫЙ', 'Y') SET @return = REPLACE(@return, 'ЭЙ', 'EY') SET @return = REPLACE(@return, 'ЮЙ', 'YUY') SET @return = REPLACE(@return, 'ЯЙ', 'YAY') SET @return = REPLACE(@return, 'А', 'A') SET @return = REPLACE(@return, 'Б', 'B') SET @return = REPLACE(@return, 'В', 'V') SET @return = REPLACE(@return, 'Г', 'G') SET @return = REPLACE(@return, 'Д', 'D') SET @return = REPLACE(@return, 'Е', 'E') SET @return = REPLACE(@return, 'Ё', 'E') SET @return = REPLACE(@return, 'Ж', 'ZH') SET @return = REPLACE(@return, 'З', 'Z') SET @return = REPLACE(@return, 'И', 'I') SET @return = REPLACE(@return, 'Й', 'I') SET @return = REPLACE(@return, 'К', 'K') SET @return = REPLACE(@return, 'Л', 'L') SET @return = REPLACE(@return, 'М', 'M') SET @return = REPLACE(@return, 'Н', 'N') SET @return = REPLACE(@return, 'О', 'O') SET @return = REPLACE(@return, 'П', 'P') SET @return = REPLACE(@return, 'Р', 'R') SET @return = REPLACE(@return, 'С', 'S') SET @return = REPLACE(@return, 'Т', 'T') SET @return = REPLACE(@return, 'У', 'U') SET @return = REPLACE(@return, 'Ф', 'F') SET @return = REPLACE(@return, 'Х', 'KH') SET @return = REPLACE(@return, 'Ц', 'TC') SET @return = REPLACE(@return, 'Ч', 'CH') SET @return = REPLACE(@return, 'Ш', 'SH') SET @return = REPLACE(@return, 'Щ', 'SHCH') SET @return = REPLACE(@return, 'Ы', 'Y') SET @return = REPLACE(@return, 'Э', 'E') SET @return = REPLACE(@return, 'Ю', 'IU') SET @return = REPLACE(@return, 'Я', 'IA') SET @return = REPLACE(@return, 'Ь', '') SET @return = REPLACE(@return, 'Ъ', '') RETURN @return END
четверг, 10 апреля 2014 г.
MSSQL: Функция для транслита
Попытался тут давеча использовать SOUNDEX и DIFFERENCE для поиска похожих фамилий. Безуспешно - выяснилось, что эти функции с кириллицей не работают. Возникла идея транслитерировать фамилии и уже затем скармливать их этим функциям. Эксперимент показал, что всё равно получается не очень хорошо, так что идея умерла. А функция транслитерации (по стандарту ГОСТ Р 52535.1-2006) осталась, вот:
Подписаться на:
Сообщения (Atom)