Created
January 30, 2014 11:43
-
-
Save grishin/8706886 to your computer and use it in GitHub Desktop.
How to convert russian string to english translit
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| --Взято отсюда http://www.sql.ru/forum/546853-2/est-li-u-kogo-gotovaya-funkciya-perevoda-translit-s-ruskogo-na-angliyskiy с небольшой корректировкой | |
| ALTER FUNCTION [dbo].[fn_cc2ToTranslit] (@name NVARCHAR(MAX)) | |
| RETURNS NVARCHAR(MAX) | |
| BEGIN | |
| DECLARE @TransTable TABLE( | |
| Rus Char PRIMARY KEY | |
| ,Lat VarChar(2) | |
| )INSERT @TransTable SELECT 'А','A' | |
| UNION ALL SELECT 'Б','B' | |
| UNION ALL SELECT 'В','V' | |
| UNION ALL SELECT 'Г','G' | |
| UNION ALL SELECT 'Д','D' | |
| UNION ALL SELECT 'Е','E' | |
| UNION ALL SELECT 'Ё','Yo' | |
| UNION ALL SELECT 'Ж','Zh' | |
| UNION ALL SELECT 'З','Z' | |
| UNION ALL SELECT 'И','I' | |
| UNION ALL SELECT 'Й','Y' | |
| UNION ALL SELECT 'К','K' | |
| UNION ALL SELECT 'Л','L' | |
| UNION ALL SELECT 'М','M' | |
| UNION ALL SELECT 'Н','N' | |
| UNION ALL SELECT 'О','O' | |
| UNION ALL SELECT 'П','P' | |
| UNION ALL SELECT 'Р','R' | |
| UNION ALL SELECT 'С','S' | |
| UNION ALL SELECT 'Т','T' | |
| UNION ALL SELECT 'У','U' | |
| UNION ALL SELECT 'Ф','F' | |
| UNION ALL SELECT 'Х','H' | |
| UNION ALL SELECT 'Ц','C' | |
| UNION ALL SELECT 'Ч','Ch' | |
| UNION ALL SELECT 'Ш','Sh' | |
| UNION ALL SELECT 'Щ','Sh' | |
| UNION ALL SELECT 'Ъ','' | |
| UNION ALL SELECT 'Ы','Y' | |
| UNION ALL SELECT 'Ь','' | |
| UNION ALL SELECT 'Э','E' | |
| UNION ALL SELECT 'Ю','Yu' | |
| UNION ALL SELECT 'Я','Ya' | |
| DECLARE @Result VarChar(max) | |
| SET @Result = @name | |
| SELECT @Result = Replace(@Result,Upper(Rus) COLLATE Cyrillic_General_CS_AS,Lat) FROM @TransTable WHERE @name LIKE '%' + Rus + '%' | |
| SELECT @Result = Replace(@Result,Lower(Rus) COLLATE Cyrillic_General_CI_AS,LOWER(Lat)) FROM @TransTable WHERE @name LIKE '%' + Rus + '%' | |
| RETURN @Result | |
| END |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Здравствуйте!
Подскажите пожалуйста, как применять данную функцию для одного столбца?
Я совсем новичок, но сейчас вот появилась такая задача.
Мне нужно дублировать значения ячейки столбца в другой столбец чтобы на выходе иметь столбец с тайтлами на латинице и столбец на кириллице...