Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
 Есть ли у кого готовая функция перевода (транслит) с руского на английский  [new]
Nemoxur
Member

Откуда:
Сообщений: 179
Срочно надо... поделитесь пожалуйста, а то срочно надо, а изобретать нет времени. :-(
14 апр 08, 10:44    [5541189]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли у кого готовая функция перевода (транслит) с руского на английский  [new]
KGP
Member

Откуда: Москва
Сообщений: 4554
русCкого

ps: если у вас 2005, то пользуйте clr имхо.
14 апр 08, 10:56    [5541269]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли у кого готовая функция перевода (транслит) с руского на английский  [new]
Nemoxur
Member

Откуда:
Сообщений: 179
KGP
русCкого
упс


KGP
ps: если у вас 2005, то пользуйте clr имхо.

А что это? Можно поподробнее
14 апр 08, 11:03    [5541315]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли у кого готовая функция перевода (транслит) с руского на английский  [new]
big-duke
Member

Откуда:
Сообщений: 6806
Nemoxur

А что это? Можно поподробнее

Имхо это Common Language Runtime. Т.е вы можете на языках .net писать свои расширения(функции) под скуль. 2005 скуль.
14 апр 08, 11:08    [5541339]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли у кого готовая функция перевода (транслит) с руского на английский  [new]
KGP
Member

Откуда: Москва
Сообщений: 4554
Nemoxur

KGP
ps: если у вас 2005, то пользуйте clr имхо.

А что это? Можно поподробнее


это возможность реализовать специфическую задачу посредством net (например C#)
ps: читайте в Books Online
(ms-help://MS.SQLCC.v9/MS.SQLSVR.v9.en/denet9/html/c73e628a-f54a-411a-bfe3-6dae519316cc.htm)
14 апр 08, 11:08    [5541344]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли у кого готовая функция перевода (транслит) с руского на английский  [new]
Ken@t
Member

Откуда: 大地
Сообщений: 3265
Асилишь ?
CREATE FUNCTION [dbo].[ufn_EnName] (@name NVARCHAR(255))  
RETURNS NVARCHAR(255)  
BEGIN  
 RETURN UPPER(LTRIM(RTRIM(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
   @name  
  ,N' ', N' ')  
  ,N'!', N'!')  
  ,N'"', N'"')  
  ,N'#', N'#')  
  ,N'$', N'$')  
  ,N'%', N'%')  
  ,N'&', N'&')  
  ,N'''', N'''')  
  ,N'(', N'(')  
  ,N')', N')')  
  ,N'*', N'*')  
  ,N'+', N'+')  
  ,N',', N',')  
  ,N'-', N'-')  
  ,N'.', N'.')  
  ,N'/', N'/')  
  ,N'0', N'0')  
  ,N'1', N'1')  
  ,N'2', N'2')  
  ,N'3', N'3')  
  ,N'4', N'4')  
  ,N'5', N'5')  
  ,N'6', N'6')  
  ,N'7', N'7')  
  ,N'8', N'8')  
  ,N'9', N'9')  
  ,N':', N':')  
  ,N';', N';')  
  ,N'<', N'<')  
  ,N'=', N'=')  
  ,N'>', N'>')  
  ,N'?', N'?')  
  ,N'@', N'@')  
  ,N'A', N'A')  
  ,N'B', N'B')  
  ,N'C', N'C')  
  ,N'D', N'D')  
  ,N'E', N'E')  
  ,N'F', N'F')  
  ,N'G', N'G')  
  ,N'H', N'H')  
  ,N'I', N'I')  
  ,N'J', N'J')  
  ,N'K', N'K')  
  ,N'L', N'L')  
  ,N'M', N'M')  
  ,N'N', N'N')  
  ,N'O', N'O')  
  ,N'P', N'P')  
  ,N'Q', N'Q')  
  ,N'R', N'R')  
  ,N'S', N'S')  
  ,N'T', N'T')  
  ,N'U', N'U')  
  ,N'V', N'V')  
  ,N'W', N'W')  
  ,N'X', N'X')  
  ,N'Y', N'Y')  
  ,N'Z', N'Z')  
  ,N'[', N'[')  
  ,N'\', N'\')  
  ,N']', N']')  
  ,N'^', N'^')  
  ,N'_', N'_')  
  ,N'`', N'`')  
  ,N'a', N'a')  
  ,N'b', N'b')  
  ,N'c', N'c')  
  ,N'd', N'd')  
  ,N'e', N'e')  
  ,N'f', N'f')  
  ,N'g', N'g')  
  ,N'h', N'h')  
  ,N'i', N'i')  
  ,N'j', N'j')  
  ,N'k', N'k')  
  ,N'l', N'l')  
  ,N'm', N'm')  
  ,N'n', N'n')  
  ,N'o', N'o')  
  ,N'p', N'p')  
  ,N'q', N'q')  
  ,N'r', N'r')  
  ,N's', N's')  
  ,N't', N't')  
  ,N'u', N'u')  
  ,N'v', N'v')  
  ,N'w', N'w')  
  ,N'x', N'x')  
  ,N'y', N'y')  
  ,N'z', N'z')  
  ,N'{', N'{')  
  ,N'|', N'|')  
  ,N'}', N'}')  
  ,N'~', N'~')  
  ,N'À', N'A')  
  ,N'Á', N'A')  
  ,N'Â', N'A')  
  ,N'Ã', N'A')  
  ,N'Ä', N'Ae')  
  ,N'Å', N'Aa')  
  ,N'Æ', N'Ae')  
  ,N'Ç', N'C')  
  ,N'È', N'E')  
  ,N'É', N'E')  
  ,N'Ê', N'E')  
  ,N'Ë', N'E')  
  ,N'Ì', N'I')  
  ,N'Í', N'I')  
  ,N'Î', N'I')  
  ,N'Ï', N'I')  
  ,N'Ð', N'D')  
  ,N'Ñ', N'N')  
  ,N'Ò', N'O')  
  ,N'Ó', N'O')  
  ,N'Ô', N'O')  
  ,N'Õ', N'O')  
  ,N'Ö', N'Oe')  
  ,N'Ø', N'O')  
  ,N'Ù', N'U')  
  ,N'Ú', N'U')  
  ,N'Û', N'U')  
  ,N'Ü', N'Ue')  
  ,N'Ý', N'Y')  
  ,N'Þ', N'Th')  
  ,N'ß', N'ss')  
  ,N'à', N'a')  
  ,N'á', N'a')  
  ,N'â', N'a')  
  ,N'ã', N'a')  
  ,N'ä', N'ae')  
  ,N'å', N'aa')  
  ,N'æ', N'ae')  
  ,N'ç', N'c')  
  ,N'è', N'e')  
  ,N'é', N'e')  
  ,N'ê', N'e')  
  ,N'ë', N'e')  
  ,N'ì', N'i')  
  ,N'í', N'i')  
  ,N'î', N'i')  
  ,N'ï', N'i')  
  ,N'ð', N'd')  
  ,N'ñ', N'n')  
  ,N'ò', N'o')  
  ,N'ó', N'o')  
  ,N'ô', N'o')  
  ,N'õ', N'o')  
  ,N'ö', N'oe')  
  ,N'ø', N'o')  
  ,N'ù', N'u')  
  ,N'ú', N'u')  
  ,N'û', N'u')  
  ,N'ü', N'ue')  
  ,N'ý', N'y')  
  ,N'þ', N'th')  
  ,N'ÿ', N'y')  
  ,N'Ā', N'A')  
  ,N'ā', N'a')  
  ,N'Ă', N'A')  
  ,N'ă', N'a')  
  ,N'Ą', N'A')  
  ,N'ą', N'a')  
  ,N'Ć', N'C')  
  ,N'ć', N'c')  
  ,N'Ĉ', N'C')  
  ,N'ĉ', N'c')  
  ,N'Ċ', N'C')  
  ,N'ċ', N'c')  
  ,N'Č', N'C')  
  ,N'č', N'c')  
  ,N'Ď', N'D')  
  ,N'ď', N'd')  
  ,N'Đ', N'D')  
  ,N'đ', N'd')  
  ,N'Ē', N'E')  
  ,N'ē', N'e')  
  ,N'Ĕ', N'E')  
  ,N'ĕ', N'e')  
  ,N'Ė', N'E')  
  ,N'ė', N'e')  
  ,N'Ę', N'E')  
  ,N'ę', N'e')  
  ,N'Ě', N'E')  
  ,N'ě', N'e')  
  ,N'Ĝ', N'G')  
  ,N'ĝ', N'g')  
  ,N'Ğ', N'G')  
  ,N'ğ', N'g')  
  ,N'Ġ', N'G')  
  ,N'ġ', N'g')  
  ,N'Ģ', N'G')  
  ,N'ģ', N'g')  
  ,N'Ĥ', N'H')  
  ,N'ĥ', N'h')  
  ,N'Ħ', N'H')  
  ,N'ħ', N'h')  
  ,N'Ĩ', N'I')  
  ,N'ĩ', N'i')  
  ,N'Ī', N'I')  
  ,N'ī', N'i')  
  ,N'Ĭ', N'I')  
  ,N'ĭ', N'i')  
  ,N'Į', N'I')  
  ,N'į', N'i')  
  ,N'İ', N'I')  
  ,N'ı', N'i')  
  ,N'IJ', N'Ij')  
  ,N'ij', N'ij')  
  ,N'Ĵ', N'J')  
  ,N'ĵ', N'j')  
  ,N'Ķ', N'K')  
  ,N'ķ', N'k')  
  ,N'ĸ', N'k')  
  ,N'Ĺ', N'L')  
  ,N'ĺ', N'l')  
  ,N'Ļ', N'L')  
  ,N'ļ', N'l')  
  ,N'Ľ', N'L')  
  ,N'ľ', N'l')  
  ,N'Ŀ', N'L')  
  ,N'ŀ', N'l')  
  ,N'Ł', N'L')  
  ,N'ł', N'l')  
  ,N'Ń', N'N')  
  ,N'ń', N'n')  
  ,N'Ņ', N'N')  
  ,N'ņ', N'n')  
  ,N'Ň', N'N')  
  ,N'ň', N'n')  
  ,N'ʼn', N'n')  
  ,N'Ŋ', N'N')  
  ,N'ŋ', N'n')  
  ,N'Ō', N'O')  
  ,N'ō', N'o')  
  ,N'Ŏ', N'O')  
  ,N'ŏ', N'o')  
  ,N'Ő', N'O')  
  ,N'ő', N'o')  
  ,N'Œ', N'Oe')  
  ,N'œ', N'oe')  
  ,N'Ŕ', N'R')  
  ,N'ŕ', N'r')  
  ,N'Ŗ', N'R')  
  ,N'ŗ', N'r')  
  ,N'Ř', N'R')  
  ,N'ř', N'r')  
  ,N'Ś', N'S')  
  ,N'ś', N's')  
  ,N'Ŝ', N'S')  
  ,N'ŝ', N's')  
  ,N'Ş', N'S')  
  ,N'ş', N's')  
  ,N'Š', N'S')  
  ,N'š', N's')  
  ,N'Ţ', N'T')  
  ,N'ţ', N't')  
  ,N'Ť', N'T')  
  ,N'ť', N't')  
  ,N'Ŧ', N'T')  
  ,N'ŧ', N't')  
  ,N'Ũ', N'U')  
  ,N'ũ', N'u')  
  ,N'Ū', N'U')  
  ,N'ū', N'u')  
  ,N'Ŭ', N'U')  
  ,N'ŭ', N'u')  
  ,N'Ů', N'U')  
  ,N'ů', N'u')  
  ,N'Ű', N'U')  
  ,N'ű', N'u')  
  ,N'Ų', N'U')  
  ,N'ų', N'u')  
  ,N'Ŵ', N'W')  
  ,N'ŵ', N'w')  
  ,N'Ŷ', N'Y')  
  ,N'ŷ', N'y')  
  ,N'Ÿ', N'Y')  
  ,N'Ź', N'Z')  
  ,N'ź', N'z')  
  ,N'Ż', N'Z')  
  ,N'ż', N'z')  
  ,N'Ž', N'Z')  
  ,N'ž', N'z')  
  ,N'ſ', N's')  
  ,N'Α', N'A')  
  ,N'Β', N'V')  
  ,N'Γ', N'G')  
  ,N'Δ', N'D')  
  ,N'Ε', N'E')  
  ,N'Ζ', N'Z')  
  ,N'Η', N'I')  
  ,N'Θ', N'Th')  
  ,N'Ι', N'I')  
  ,N'Κ', N'K')  
  ,N'Λ', N'L')  
  ,N'Μ', N'M')  
  ,N'Ν', N'N')  
  ,N'Ξ', N'X')  
  ,N'Ο', N'O')  
  ,N'Π', N'P')  
  ,N'Ρ', N'R')  
  ,N'Σ', N'S')  
  ,N'Τ', N'T')  
  ,N'Υ', N'Y')  
  ,N'Φ', N'F')  
  ,N'Χ', N'Ch')  
  ,N'Ψ', N'Ps')  
  ,N'Ω', N'O')  
  ,N'α', N'a')  
  ,N'β', N'v')  
  ,N'γ', N'g')  
  ,N'δ', N'd')  
  ,N'ε', N'e')  
  ,N'ζ', N'z')  
  ,N'η', N'i')  
  ,N'θ', N'th')  
  ,N'ι', N'i')  
  ,N'κ', N'k')  
  ,N'λ', N'l')  
  ,N'μ', N'm')  
  ,N'ν', N'n')  
  ,N'ξ', N'x')  
  ,N'ο', N'o')  
  ,N'π', N'p')  
  ,N'ρ', N'r')  
  ,N'ς', N's')  
  ,N'σ', N's')  
  ,N'τ', N't')  
  ,N'υ', N'y')  
  ,N'φ', N'f')  
  ,N'χ', N'ch')  
  ,N'ψ', N'ps')  
  ,N'ω', N'o')  
  ,N'Ѐ', N'E')  
  ,N'Ё', N'Ye')  
  ,N'Ђ', N'Dj')  
  ,N'Ѓ', N'Gj')  
  ,N'Є', N'Je')  
  ,N'Ѕ', N'Dz')  
  ,N'І', N'I')  
  ,N'Ї', N'Ji')  
  ,N'Ј', N'J')  
  ,N'Љ', N'Lj')  
  ,N'Њ', N'Nj')  
  ,N'Ћ', N'Tj')  
  ,N'Ќ', N'Kj')  
  ,N'Ѝ', N'J')  
  ,N'Ў', N'W')  
  ,N'Џ', N'Dz')  
  ,N'А', N'A')  
  ,N'Б', N'B')  
  ,N'В', N'V')  
  ,N'Г', N'G')  
  ,N'Д', N'D')  
  ,N'Е', N'E')  
  ,N'Ж', N'Zh')  
  ,N'З', N'Z')  
  ,N'И', N'I')  
  ,N'Й', N'J')  
  ,N'К', N'K')  
  ,N'Л', N'L')  
  ,N'М', N'M')  
  ,N'Н', N'N')  
  ,N'О', N'O')  
  ,N'П', N'P')  
  ,N'Р', N'R')  
  ,N'С', N'S')  
  ,N'Т', N'T')  
  ,N'У', N'U')  
  ,N'Ф', N'F')  
  ,N'Х', N'Kh')  
  ,N'Ц', N'Ts')  
  ,N'Ч', N'Ch')  
  ,N'Ш', N'Sh')  
  ,N'Щ', N'Shch')  
  ,N'Ъ', N'"')  
  ,N'Ы', N'Y')  
  ,N'Ь', N'''')  
  ,N'Э', N'E')  
  ,N'Ю', N'Yu')  
  ,N'Я', N'Ya')  
  ,N'а', N'a')  
  ,N'б', N'b')  
  ,N'в', N'v')  
  ,N'г', N'g')  
  ,N'д', N'd')  
  ,N'е', N'e')  
  ,N'ж', N'zh')  
  ,N'з', N'z')  
  ,N'и', N'i')  
  ,N'й', N'j')  
  ,N'к', N'k')  
  ,N'л', N'l')  
  ,N'м', N'm')  
  ,N'н', N'n')  
  ,N'о', N'o')  
  ,N'п', N'p')  
  ,N'р', N'r')  
  ,N'с', N's')  
  ,N'т', N't')  
  ,N'у', N'u')  
  ,N'ф', N'f')  
  ,N'х', N'kh')  
  ,N'ц', N'ts')  
  ,N'ч', N'ch')  
  ,N'ш', N'sh')  
  ,N'щ', N'shch')  
  ,N'ъ', N'"')  
  ,N'ы', N'y')  
  ,N'ь', N'''')  
  ,N'э', N'e')  
  ,N'ю', N'yu')  
  ,N'я', N'ya')  
  ,N'ѐ', N'e')  
  ,N'ё', N'ye')    ,N'ђ', N'dj')  
  ,N'ѓ', N'gj')  
  ,N'є', N'je')  
  ,N'ѕ', N'dz')  
  ,N'і', N'i')  
  ,N'ї', N'ji')  
  ,N'ј', N'j')  
  ,N'љ', N'lj')  
  ,N'њ', N'nj')  
  ,N'ћ', N'tj')  
  ,N'ќ', N'kj')  
  ,N'ѝ', N'j')  
  ,N'ў', N'w')  
  ,N'џ', N'dz')  
 )))  
END  
14 апр 08, 11:09    [5541351]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли у кого готовая функция перевода (транслит) с руского на английский  [new]
Nemoxur
Member

Откуда:
Сообщений: 179
Всё разобрался, спасибо всем кто ответил ))
14 апр 08, 11:16    [5541405]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли у кого готовая функция перевода (транслит) с руского на английский  [new]
KGP
Member

Откуда: Москва
Сообщений: 4554
Ken@t
Асилишь ?
... REPLACE(  
   @name  
  ,N' ', N' ')  
...


а в чем фича?
14 апр 08, 11:17    [5541410]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли у кого готовая функция перевода (транслит) с руского на английский  [new]
Ken@t
Member

Откуда: 大地
Сообщений: 3265
KGP
[quot Ken@t]Асилишь ?

а в чем фича?

Баг, генератор кривой, тест прошёл, а текст - не смотрел. )))
14 апр 08, 11:19    [5541427]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли у кого готовая функция перевода (транслит) с руского на английский  [new]
лл
Guest
Только, имхо, нужно сохранять регистр букв при конвертации...
14 апр 08, 11:31    [5541491]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли у кого готовая функция перевода (транслит) с руского на английский  [new]
Nemoxur
Member

Откуда:
Сообщений: 179
REPLACE(@name, N' ', N' ')

объясните для чего символ N? А то в sql Server books online смотрел, там ничего такого нет…
14 апр 08, 11:55    [5541642]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли у кого готовая функция перевода (транслит) с руского на английский  [new]
RastaCat
Member

Откуда:
Сообщений: 8227
Nemoxur
REPLACE(@name, N' ', N' ')

объясните для чего символ N? А то в sql Server books online смотрел, там ничего такого нет…

https://www.sql.ru/faq/faq_topic.aspx?fid=127
14 апр 08, 11:59    [5541664]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли у кого готовая функция перевода (транслит) с руского на английский  [new]
лл
Guest
Преобразование строки ASCII в юникод
14 апр 08, 11:59    [5541666]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли у кого готовая функция перевода (транслит) с руского на английский  [new]
лл
Guest
Немного преобразовал с учетом регистра букв:
CREATE FUNCTION [dbo].[ufn_EnName] (@name NVARCHAR(255))  
RETURNS NVARCHAR(255)  
BEGIN  
 RETURN (LTRIM(RTRIM(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
  REPLACE(  
   @name COLLATE Cyrillic_General_BIN 
  ,N'À', N'A')  
  ,N'Á', N'A')  
  ,N'Â', N'A')  
  ,N'Ã', N'A')  
  ,N'Ä', N'Ae')  
  ,N'Å', N'Aa')  
  ,N'Æ', N'Ae')  
  ,N'Ç', N'C')  
  ,N'È', N'E')  
  ,N'É', N'E')  
  ,N'Ê', N'E')  
  ,N'Ë', N'E')  
  ,N'Ì', N'I')  
  ,N'Í', N'I')  
  ,N'Î', N'I')  
  ,N'Ï', N'I')  
  ,N'Ð', N'D')  
  ,N'Ñ', N'N')  
  ,N'Ò', N'O')  
  ,N'Ó', N'O')  
  ,N'Ô', N'O')  
  ,N'Õ', N'O')  
  ,N'Ö', N'Oe')  
  ,N'Ø', N'O')  
  ,N'Ù', N'U')  
  ,N'Ú', N'U')  
  ,N'Û', N'U')  
  ,N'Ü', N'Ue')  
  ,N'Ý', N'Y')  
  ,N'Þ', N'Th')  
  ,N'ß', N'ss')  
  ,N'à', N'a')  
  ,N'á', N'a')  
  ,N'â', N'a')  
  ,N'ã', N'a')  
  ,N'ä', N'ae')  
  ,N'å', N'aa')  
  ,N'æ', N'ae')  
  ,N'ç', N'c')  
  ,N'è', N'e')  
  ,N'é', N'e')  
  ,N'ê', N'e')  
  ,N'ë', N'e')  
  ,N'ì', N'i')  
  ,N'í', N'i')  
  ,N'î', N'i')  
  ,N'ï', N'i')  
  ,N'ð', N'd')  
  ,N'ñ', N'n')  
  ,N'ò', N'o')  
  ,N'ó', N'o')  
  ,N'ô', N'o')  
  ,N'õ', N'o')  
  ,N'ö', N'oe')  
  ,N'ø', N'o')  
  ,N'ù', N'u')  
  ,N'ú', N'u')  
  ,N'û', N'u')  
  ,N'ü', N'ue')  
  ,N'ý', N'y')  
  ,N'þ', N'th')  
  ,N'ÿ', N'y')  
  ,N'Ā', N'A')  
  ,N'ā', N'a')  
  ,N'Ă', N'A')  
  ,N'ă', N'a')  
  ,N'Ą', N'A')  
  ,N'ą', N'a')  
  ,N'Ć', N'C')  
  ,N'ć', N'c')  
  ,N'Ĉ', N'C')  
  ,N'ĉ', N'c')  
  ,N'Ċ', N'C')  
  ,N'ċ', N'c')  
  ,N'Č', N'C')  
  ,N'č', N'c')  
  ,N'Ď', N'D')  
  ,N'ď', N'd')  
  ,N'Đ', N'D')  
  ,N'đ', N'd')  
  ,N'Ē', N'E')  
  ,N'ē', N'e')  
  ,N'Ĕ', N'E')  
  ,N'ĕ', N'e')  
  ,N'Ė', N'E')  
  ,N'ė', N'e')  
  ,N'Ę', N'E')  
  ,N'ę', N'e')  
  ,N'Ě', N'E')  
  ,N'ě', N'e')  
  ,N'Ĝ', N'G')  
  ,N'ĝ', N'g')  
  ,N'Ğ', N'G')  
  ,N'ğ', N'g')  
  ,N'Ġ', N'G')  
  ,N'ġ', N'g')  
  ,N'Ģ', N'G')  
  ,N'ģ', N'g')  
  ,N'Ĥ', N'H')  
  ,N'ĥ', N'h')  
  ,N'Ħ', N'H')  
  ,N'ħ', N'h')  
  ,N'Ĩ', N'I')  
  ,N'ĩ', N'i')  
  ,N'Ī', N'I')  
  ,N'ī', N'i')  
  ,N'Ĭ', N'I')  
  ,N'ĭ', N'i')  
  ,N'Į', N'I')  
  ,N'į', N'i')  
  ,N'İ', N'I')  
  ,N'ı', N'i')  
  ,N'IJ', N'Ij')  
  ,N'ij', N'ij')  
  ,N'Ĵ', N'J')  
  ,N'ĵ', N'j')  
  ,N'Ķ', N'K')  
  ,N'ķ', N'k')  
  ,N'ĸ', N'k')  
  ,N'Ĺ', N'L')  
  ,N'ĺ', N'l')  
  ,N'Ļ', N'L')  
  ,N'ļ', N'l')  
  ,N'Ľ', N'L')  
  ,N'ľ', N'l')  
  ,N'Ŀ', N'L')  
  ,N'ŀ', N'l')  
  ,N'Ł', N'L')  
  ,N'ł', N'l')  
  ,N'Ń', N'N')  
  ,N'ń', N'n')  
  ,N'Ņ', N'N')  
  ,N'ņ', N'n')  
  ,N'Ň', N'N')  
  ,N'ň', N'n')  
  ,N'ʼn', N'n')  
  ,N'Ŋ', N'N')  
  ,N'ŋ', N'n')  
  ,N'Ō', N'O')  
  ,N'ō', N'o')  
  ,N'Ŏ', N'O')  
  ,N'ŏ', N'o')  
  ,N'Ő', N'O')  
  ,N'ő', N'o')  
  ,N'Œ', N'Oe')  
  ,N'œ', N'oe')  
  ,N'Ŕ', N'R')  
  ,N'ŕ', N'r')  
  ,N'Ŗ', N'R')  
  ,N'ŗ', N'r')  
  ,N'Ř', N'R')  
  ,N'ř', N'r')  
  ,N'Ś', N'S')  
  ,N'ś', N's')  
  ,N'Ŝ', N'S')  
  ,N'ŝ', N's')  
  ,N'Ş', N'S')  
  ,N'ş', N's')  
  ,N'Š', N'S')  
  ,N'š', N's')  
  ,N'Ţ', N'T')  
  ,N'ţ', N't')  
  ,N'Ť', N'T')  
  ,N'ť', N't')  
  ,N'Ŧ', N'T')  
  ,N'ŧ', N't')  
  ,N'Ũ', N'U')  
  ,N'ũ', N'u')  
  ,N'Ū', N'U')  
  ,N'ū', N'u')  
  ,N'Ŭ', N'U')  
  ,N'ŭ', N'u')  
  ,N'Ů', N'U')  
  ,N'ů', N'u')  
  ,N'Ű', N'U')  
  ,N'ű', N'u')  
  ,N'Ų', N'U')  
  ,N'ų', N'u')  
  ,N'Ŵ', N'W')  
  ,N'ŵ', N'w')  
  ,N'Ŷ', N'Y')  
  ,N'ŷ', N'y')  
  ,N'Ÿ', N'Y')  
  ,N'Ź', N'Z')  
  ,N'ź', N'z')  
  ,N'Ż', N'Z')  
  ,N'ż', N'z')  
  ,N'Ž', N'Z')  
  ,N'ž', N'z')  
  ,N'ſ', N's')  
  ,N'Α', N'A')  
  ,N'Β', N'V')  
  ,N'Γ', N'G')  
  ,N'Δ', N'D')  
  ,N'Ε', N'E')  
  ,N'Ζ', N'Z')  
  ,N'Η', N'I')  
  ,N'Θ', N'Th')  
  ,N'Ι', N'I')  
  ,N'Κ', N'K')  
  ,N'Λ', N'L')  
  ,N'Μ', N'M')  
  ,N'Ν', N'N')  
  ,N'Ξ', N'X')  
  ,N'Ο', N'O')  
  ,N'Π', N'P')  
  ,N'Ρ', N'R')  
  ,N'Σ', N'S')  
  ,N'Τ', N'T')  
  ,N'Υ', N'Y')  
  ,N'Φ', N'F')  
  ,N'Χ', N'Ch')  
  ,N'Ψ', N'Ps')  
  ,N'Ω', N'O')  
  ,N'α', N'a')  
  ,N'β', N'v')  
  ,N'γ', N'g')  
  ,N'δ', N'd')  
  ,N'ε', N'e')  
  ,N'ζ', N'z')  
  ,N'η', N'i')  
  ,N'θ', N'th')  
  ,N'ι', N'i')  
  ,N'κ', N'k')  
  ,N'λ', N'l')  
  ,N'μ', N'm')  
  ,N'ν', N'n')  
  ,N'ξ', N'x')  
  ,N'ο', N'o')  
  ,N'π', N'p')  
  ,N'ρ', N'r')  
  ,N'ς', N's')  
  ,N'σ', N's')  
  ,N'τ', N't')  
  ,N'υ', N'y')  
  ,N'φ', N'f')  
  ,N'χ', N'ch')  
  ,N'ψ', N'ps')  
  ,N'ω', N'o')  
  ,N'Ѐ', N'E')  
  ,N'Ё', N'Ye')  
  ,N'Ђ', N'Dj')  
  ,N'Ѓ', N'Gj')  
  ,N'Є', N'Je')  
  ,N'Ѕ', N'Dz')  
  ,N'І', N'I')  
  ,N'Ї', N'Ji')  
  ,N'Ј', N'J')  
  ,N'Љ', N'Lj')  
  ,N'Њ', N'Nj')  
  ,N'Ћ', N'Tj')  
  ,N'Ќ', N'Kj')  
  ,N'Ѝ', N'J')  
  ,N'Ў', N'W')  
  ,N'Џ', N'Dz')  
  ,N'А', N'A')  
  ,N'Б', N'B')  
  ,N'В', N'V')  
  ,N'Г', N'G')  
  ,N'Д', N'D')  
  ,N'Е', N'E')  
  ,N'Ж', N'Zh')  
  ,N'З', N'Z')  
  ,N'И', N'I')  
  ,N'Й', N'J')  
  ,N'К', N'K')  
  ,N'Л', N'L')  
  ,N'М', N'M')  
  ,N'Н', N'N')  
  ,N'О', N'O')  
  ,N'П', N'P')  
  ,N'Р', N'R')  
  ,N'С', N'S')  
  ,N'Т', N'T')  
  ,N'У', N'U')  
  ,N'Ф', N'F')  
  ,N'Х', N'Kh')  
  ,N'Ц', N'Ts')  
  ,N'Ч', N'Ch')  
  ,N'Ш', N'Sh')  
  ,N'Щ', N'Shch')  
  ,N'Ъ', N'"')  
  ,N'Ы', N'Y')  
  ,N'Ь', N'''')  
  ,N'Э', N'E')  
  ,N'Ю', N'Yu')  
  ,N'Я', N'Ya')  
  ,N'а', N'a')  
  ,N'б', N'b')  
  ,N'в', N'v')  
  ,N'г', N'g')  
  ,N'д', N'd')  
  ,N'е', N'e')  
  ,N'ж', N'zh')  
  ,N'з', N'z')  
  ,N'и', N'i')  
  ,N'й', N'j')  
  ,N'к', N'k')  
  ,N'л', N'l')  
  ,N'м', N'm')  
  ,N'н', N'n')  
  ,N'о', N'o')  
  ,N'п', N'p')  
  ,N'р', N'r')  
  ,N'с', N's')  
  ,N'т', N't')  
  ,N'у', N'u')  
  ,N'ф', N'f')  
  ,N'х', N'kh')  
  ,N'ц', N'ts')  
  ,N'ч', N'ch')  
  ,N'ш', N'sh')  
  ,N'щ', N'shch')  
  ,N'ъ', N'"')  
  ,N'ы', N'y')  
  ,N'ь', N'''')  
  ,N'э', N'e')  
  ,N'ю', N'yu')  
  ,N'я', N'ya')  
  ,N'ѐ', N'e')  
  ,N'ё', N'ye')    ,N'ђ', N'dj')  
  ,N'ѓ', N'gj')  
  ,N'є', N'je')  
  ,N'ѕ', N'dz')  
  ,N'і', N'i')  
  ,N'ї', N'ji')  
  ,N'ј', N'j')  
  ,N'љ', N'lj')  
  ,N'њ', N'nj')  
  ,N'ћ', N'tj')  
  ,N'ќ', N'kj')  
  ,N'ѝ', N'j')  
  ,N'ў', N'w')  
  ,N'џ', N'dz')  
 )))  
END
14 апр 08, 12:24    [5541835]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли у кого готовая функция перевода (транслит) с руского на английский  [new]
Nemoxur
Member

Откуда:
Сообщений: 179
тему можно закрывать, всем ещё раз спасибо! ))
14 апр 08, 12:45    [5541954]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли у кого готовая функция перевода (транслит) с руского на английский  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
А так не проще?
USE tempdb;
SET NOCOUNT ON;
IF OBJECT_ID('TransLit','U') IS NOT NULL DROP TABLE TransLit;
CREATE TABLE TransLit(Rus NVARCHAR(4000), Lat NVARCHAR(4000));
INSERT TransLit(Rus, Lat)
SELECT N'À',N'A'
UNION ALL SELECT N'Á', N'A'
UNION ALL SELECT N'Â', N'A'  
UNION ALL SELECT N'Ã', N'A'  
UNION ALL SELECT N'Ä', N'Ae'  
UNION ALL SELECT N'Å', N'Aa'  
UNION ALL SELECT N'Æ', N'Ae'  
UNION ALL SELECT N'Ç', N'C'  
UNION ALL SELECT N'È', N'E'  
UNION ALL SELECT N'É', N'E'  
UNION ALL SELECT N'Ê', N'E'  
UNION ALL SELECT N'Ë', N'E'  
UNION ALL SELECT N'Ì', N'I'  
UNION ALL SELECT N'Í', N'I'  
UNION ALL SELECT N'Î', N'I'  
UNION ALL SELECT N'Ï', N'I'  
UNION ALL SELECT N'Ð', N'D'  
UNION ALL SELECT N'Ñ', N'N'  
UNION ALL SELECT N'Ò', N'O'  
UNION ALL SELECT N'Ó', N'O'  
UNION ALL SELECT N'Ô', N'O'  
UNION ALL SELECT N'Õ', N'O'  
UNION ALL SELECT N'Ö', N'Oe'  
UNION ALL SELECT N'Ø', N'O'  
UNION ALL SELECT N'Ù', N'U'  
UNION ALL SELECT N'Ú', N'U'  
UNION ALL SELECT N'Û', N'U'  
UNION ALL SELECT N'Ü', N'Ue'  
UNION ALL SELECT N'Ý', N'Y'  
UNION ALL SELECT N'Þ', N'Th'  
UNION ALL SELECT N'ß', N'ss'  
UNION ALL SELECT N'à', N'a'  
UNION ALL SELECT N'á', N'a'  
UNION ALL SELECT N'â', N'a'  
UNION ALL SELECT N'ã', N'a'  
UNION ALL SELECT N'ä', N'ae'  
UNION ALL SELECT N'å', N'aa'  
UNION ALL SELECT N'æ', N'ae'  
UNION ALL SELECT N'ç', N'c'  
UNION ALL SELECT N'è', N'e'  
UNION ALL SELECT N'é', N'e'  
UNION ALL SELECT N'ê', N'e'  
UNION ALL SELECT N'ë', N'e'  
UNION ALL SELECT N'ì', N'i'  
UNION ALL SELECT N'í', N'i'  
UNION ALL SELECT N'î', N'i'  
UNION ALL SELECT N'ï', N'i'  
UNION ALL SELECT N'ð', N'd'  
UNION ALL SELECT N'ñ', N'n'  
UNION ALL SELECT N'ò', N'o'  
UNION ALL SELECT N'ó', N'o'  
UNION ALL SELECT N'ô', N'o'  
UNION ALL SELECT N'õ', N'o'  
UNION ALL SELECT N'ö', N'oe'  
UNION ALL SELECT N'ø', N'o'  
UNION ALL SELECT N'ù', N'u'  
UNION ALL SELECT N'ú', N'u'  
UNION ALL SELECT N'û', N'u'  
UNION ALL SELECT N'ü', N'ue'  
UNION ALL SELECT N'ý', N'y'  
UNION ALL SELECT N'þ', N'th'  
UNION ALL SELECT N'ÿ', N'y'  
UNION ALL SELECT N'Ā', N'A'  
UNION ALL SELECT N'ā', N'a'  
UNION ALL SELECT N'Ă', N'A'  
UNION ALL SELECT N'ă', N'a'  
UNION ALL SELECT N'Ą', N'A'  
UNION ALL SELECT N'ą', N'a'  
UNION ALL SELECT N'Ć', N'C'  
UNION ALL SELECT N'ć', N'c'  
UNION ALL SELECT N'Ĉ', N'C'  
UNION ALL SELECT N'ĉ', N'c'  
UNION ALL SELECT N'Ċ', N'C'  
UNION ALL SELECT N'ċ', N'c'  
UNION ALL SELECT N'Č', N'C'  
UNION ALL SELECT N'č', N'c'  
UNION ALL SELECT N'Ď', N'D'  
UNION ALL SELECT N'ď', N'd'  
UNION ALL SELECT N'Đ', N'D'  
UNION ALL SELECT N'đ', N'd'  
UNION ALL SELECT N'Ē', N'E'  
UNION ALL SELECT N'ē', N'e'  
UNION ALL SELECT N'Ĕ', N'E'  
UNION ALL SELECT N'ĕ', N'e'  
UNION ALL SELECT N'Ė', N'E'  
UNION ALL SELECT N'ė', N'e'  
UNION ALL SELECT N'Ę', N'E'  
UNION ALL SELECT N'ę', N'e'  
UNION ALL SELECT N'Ě', N'E'  
UNION ALL SELECT N'ě', N'e'  
UNION ALL SELECT N'Ĝ', N'G'  
UNION ALL SELECT N'ĝ', N'g'  
UNION ALL SELECT N'Ğ', N'G'  
UNION ALL SELECT N'ğ', N'g'  
UNION ALL SELECT N'Ġ', N'G'  
UNION ALL SELECT N'ġ', N'g'  
UNION ALL SELECT N'Ģ', N'G'  
UNION ALL SELECT N'ģ', N'g'  
UNION ALL SELECT N'Ĥ', N'H'  
UNION ALL SELECT N'ĥ', N'h'  
UNION ALL SELECT N'Ħ', N'H'  
UNION ALL SELECT N'ħ', N'h'  
UNION ALL SELECT N'Ĩ', N'I'  
UNION ALL SELECT N'ĩ', N'i'  
UNION ALL SELECT N'Ī', N'I'  
UNION ALL SELECT N'ī', N'i'  
UNION ALL SELECT N'Ĭ', N'I'  
UNION ALL SELECT N'ĭ', N'i'  
UNION ALL SELECT N'Į', N'I'  
UNION ALL SELECT N'į', N'i'  
UNION ALL SELECT N'İ', N'I'  
UNION ALL SELECT N'ı', N'i'  
UNION ALL SELECT N'IJ', N'Ij'  
UNION ALL SELECT N'ij', N'ij'  
UNION ALL SELECT N'Ĵ', N'J'  
UNION ALL SELECT N'ĵ', N'j'  
UNION ALL SELECT N'Ķ', N'K'  
UNION ALL SELECT N'ķ', N'k'  
UNION ALL SELECT N'ĸ', N'k'  
UNION ALL SELECT N'Ĺ', N'L'  
UNION ALL SELECT N'ĺ', N'l'  
UNION ALL SELECT N'Ļ', N'L'  
UNION ALL SELECT N'ļ', N'l'  
UNION ALL SELECT N'Ľ', N'L'  
UNION ALL SELECT N'ľ', N'l'  
UNION ALL SELECT N'Ŀ', N'L'  
UNION ALL SELECT N'ŀ', N'l'  
UNION ALL SELECT N'Ł', N'L'  
UNION ALL SELECT N'ł', N'l'  
UNION ALL SELECT N'Ń', N'N'  
UNION ALL SELECT N'ń', N'n'  
UNION ALL SELECT N'Ņ', N'N'  
UNION ALL SELECT N'ņ', N'n'  
UNION ALL SELECT N'Ň', N'N'  
UNION ALL SELECT N'ň', N'n'  
UNION ALL SELECT N'ʼn', N'n'  
UNION ALL SELECT N'Ŋ', N'N'  
UNION ALL SELECT N'ŋ', N'n'  
UNION ALL SELECT N'Ō', N'O'  
UNION ALL SELECT N'ō', N'o'  
UNION ALL SELECT N'Ŏ', N'O'  
UNION ALL SELECT N'ŏ', N'o'  
UNION ALL SELECT N'Ő', N'O'  
UNION ALL SELECT N'ő', N'o'  
UNION ALL SELECT N'Œ', N'Oe'  
UNION ALL SELECT N'œ', N'oe'  
UNION ALL SELECT N'Ŕ', N'R'  
UNION ALL SELECT N'ŕ', N'r'  
UNION ALL SELECT N'Ŗ', N'R'  
UNION ALL SELECT N'ŗ', N'r'  
UNION ALL SELECT N'Ř', N'R'  
UNION ALL SELECT N'ř', N'r'  
UNION ALL SELECT N'Ś', N'S'  
UNION ALL SELECT N'ś', N's'  
UNION ALL SELECT N'Ŝ', N'S'  
UNION ALL SELECT N'ŝ', N's'  
UNION ALL SELECT N'Ş', N'S'  
UNION ALL SELECT N'ş', N's'  
UNION ALL SELECT N'Š', N'S'  
UNION ALL SELECT N'š', N's'  
UNION ALL SELECT N'Ţ', N'T'  
UNION ALL SELECT N'ţ', N't'  
UNION ALL SELECT N'Ť', N'T'  
UNION ALL SELECT N'ť', N't'  
UNION ALL SELECT N'Ŧ', N'T'  
UNION ALL SELECT N'ŧ', N't'  
UNION ALL SELECT N'Ũ', N'U'  
UNION ALL SELECT N'ũ', N'u'  
UNION ALL SELECT N'Ū', N'U'  
UNION ALL SELECT N'ū', N'u'  
UNION ALL SELECT N'Ŭ', N'U'  
UNION ALL SELECT N'ŭ', N'u'  
UNION ALL SELECT N'Ů', N'U'  
UNION ALL SELECT N'ů', N'u'  
UNION ALL SELECT N'Ű', N'U'  
UNION ALL SELECT N'ű', N'u'  
UNION ALL SELECT N'Ų', N'U'  
UNION ALL SELECT N'ų', N'u'  
UNION ALL SELECT N'Ŵ', N'W'  
UNION ALL SELECT N'ŵ', N'w'  
UNION ALL SELECT N'Ŷ', N'Y'  
UNION ALL SELECT N'ŷ', N'y'  
UNION ALL SELECT N'Ÿ', N'Y'  
UNION ALL SELECT N'Ź', N'Z'  
UNION ALL SELECT N'ź', N'z'  
UNION ALL SELECT N'Ż', N'Z'  
UNION ALL SELECT N'ż', N'z'  
UNION ALL SELECT N'Ž', N'Z'  
UNION ALL SELECT N'ž', N'z'  
UNION ALL SELECT N'ſ', N's'  
UNION ALL SELECT N'Α', N'A'  
UNION ALL SELECT N'Β', N'V'  
UNION ALL SELECT N'Γ', N'G'  
UNION ALL SELECT N'Δ', N'D'  
UNION ALL SELECT N'Ε', N'E'  
UNION ALL SELECT N'Ζ', N'Z'  
UNION ALL SELECT N'Η', N'I'  
UNION ALL SELECT N'Θ', N'Th'  
UNION ALL SELECT N'Ι', N'I'  
UNION ALL SELECT N'Κ', N'K'  
UNION ALL SELECT N'Λ', N'L'  
UNION ALL SELECT N'Μ', N'M'  
UNION ALL SELECT N'Ν', N'N'  
UNION ALL SELECT N'Ξ', N'X'  
UNION ALL SELECT N'Ο', N'O'  
UNION ALL SELECT N'Π', N'P'  
UNION ALL SELECT N'Ρ', N'R'  
UNION ALL SELECT N'Σ', N'S'  
UNION ALL SELECT N'Τ', N'T'  
UNION ALL SELECT N'Υ', N'Y'  
UNION ALL SELECT N'Φ', N'F'  
UNION ALL SELECT N'Χ', N'Ch'  
UNION ALL SELECT N'Ψ', N'Ps'  
UNION ALL SELECT N'Ω', N'O'  
UNION ALL SELECT N'α', N'a'  
UNION ALL SELECT N'β', N'v'  
UNION ALL SELECT N'γ', N'g'  
UNION ALL SELECT N'δ', N'd'  
UNION ALL SELECT N'ε', N'e'  
UNION ALL SELECT N'ζ', N'z'  
UNION ALL SELECT N'η', N'i'  
UNION ALL SELECT N'θ', N'th'  
UNION ALL SELECT N'ι', N'i'  
UNION ALL SELECT N'κ', N'k'  
UNION ALL SELECT N'λ', N'l'  
UNION ALL SELECT N'μ', N'm'  
UNION ALL SELECT N'ν', N'n'  
UNION ALL SELECT N'ξ', N'x'  
UNION ALL SELECT N'ο', N'o'  
UNION ALL SELECT N'π', N'p'  
UNION ALL SELECT N'ρ', N'r'  
UNION ALL SELECT N'ς', N's'  
UNION ALL SELECT N'σ', N's'  
UNION ALL SELECT N'τ', N't'  
UNION ALL SELECT N'υ', N'y'  
UNION ALL SELECT N'φ', N'f'  
UNION ALL SELECT N'χ', N'ch'  
UNION ALL SELECT N'ψ', N'ps'  
UNION ALL SELECT N'ω', N'o'  
UNION ALL SELECT N'Ѐ', N'E'  
UNION ALL SELECT N'Ё', N'Ye'  
UNION ALL SELECT N'Ђ', N'Dj'  
UNION ALL SELECT N'Ѓ', N'Gj'  
UNION ALL SELECT N'Є', N'Je'  
UNION ALL SELECT N'Ѕ', N'Dz'  
UNION ALL SELECT N'І', N'I'  
UNION ALL SELECT N'Ї', N'Ji'  
UNION ALL SELECT N'Ј', N'J'  
UNION ALL SELECT N'Љ', N'Lj'  
UNION ALL SELECT N'Њ', N'Nj'  
UNION ALL SELECT N'Ћ', N'Tj'  
UNION ALL SELECT N'Ќ', N'Kj'  
UNION ALL SELECT N'Ѝ', N'J'  
UNION ALL SELECT N'Ў', N'W'  
UNION ALL SELECT N'Џ', N'Dz'  
UNION ALL SELECT N'А', N'A'  
UNION ALL SELECT N'Б', N'B'  
UNION ALL SELECT N'В', N'V'  
UNION ALL SELECT N'Г', N'G'  
UNION ALL SELECT N'Д', N'D'  
UNION ALL SELECT N'Е', N'E'  
UNION ALL SELECT N'Ж', N'Zh'  
UNION ALL SELECT N'З', N'Z'  
UNION ALL SELECT N'И', N'I'  
UNION ALL SELECT N'Й', N'J'  
UNION ALL SELECT N'К', N'K'  
UNION ALL SELECT N'Л', N'L'  
UNION ALL SELECT N'М', N'M'  
UNION ALL SELECT N'Н', N'N'  
UNION ALL SELECT N'О', N'O'  
UNION ALL SELECT N'П', N'P'  
UNION ALL SELECT N'Р', N'R'  
UNION ALL SELECT N'С', N'S'  
UNION ALL SELECT N'Т', N'T'  
UNION ALL SELECT N'У', N'U'  
UNION ALL SELECT N'Ф', N'F'  
UNION ALL SELECT N'Х', N'Kh'  
UNION ALL SELECT N'Ц', N'Ts'  
UNION ALL SELECT N'Ч', N'Ch'  
UNION ALL SELECT N'Ш', N'Sh'  
UNION ALL SELECT N'Щ', N'Shch'  
UNION ALL SELECT N'Ъ', N'"'  
UNION ALL SELECT N'Ы', N'Y'  
UNION ALL SELECT N'Ь', N''''  
UNION ALL SELECT N'Э', N'E'  
UNION ALL SELECT N'Ю', N'Yu'  
UNION ALL SELECT N'Я', N'Ya'  
UNION ALL SELECT N'а', N'a'  
UNION ALL SELECT N'б', N'b'  
UNION ALL SELECT N'в', N'v'  
UNION ALL SELECT N'г', N'g'  
UNION ALL SELECT N'д', N'd'  
UNION ALL SELECT N'е', N'e'  
UNION ALL SELECT N'ж', N'zh'  
UNION ALL SELECT N'з', N'z'  
UNION ALL SELECT N'и', N'i'  
UNION ALL SELECT N'й', N'j'  
UNION ALL SELECT N'к', N'k'  
UNION ALL SELECT N'л', N'l'  
UNION ALL SELECT N'м', N'm'  
UNION ALL SELECT N'н', N'n'  
UNION ALL SELECT N'о', N'o'  
UNION ALL SELECT N'п', N'p'  
UNION ALL SELECT N'р', N'r'  
UNION ALL SELECT N'с', N's'  
UNION ALL SELECT N'т', N't'  
UNION ALL SELECT N'у', N'u'  
UNION ALL SELECT N'ф', N'f'  
UNION ALL SELECT N'х', N'kh'  
UNION ALL SELECT N'ц', N'ts'  
UNION ALL SELECT N'ч', N'ch'  
UNION ALL SELECT N'ш', N'sh'  
UNION ALL SELECT N'щ', N'shch'  
UNION ALL SELECT N'ъ', N'"'  
UNION ALL SELECT N'ы', N'y'  
UNION ALL SELECT N'ь', N''''  
UNION ALL SELECT N'э', N'e'  
UNION ALL SELECT N'ю', N'yu'  
UNION ALL SELECT N'я', N'ya'  
UNION ALL SELECT N'ѐ', N'e'  
UNION ALL SELECT N'ё', N'ye'
UNION ALL SELECT N'ђ', N'dj'  
UNION ALL SELECT N'ѓ', N'gj'  
UNION ALL SELECT N'є', N'je'  
UNION ALL SELECT N'ѕ', N'dz'  
UNION ALL SELECT N'і', N'i'  
UNION ALL SELECT N'ї', N'ji'  
UNION ALL SELECT N'ј', N'j'  
UNION ALL SELECT N'љ', N'lj'  
UNION ALL SELECT N'њ', N'nj'  
UNION ALL SELECT N'ћ', N'tj'  
UNION ALL SELECT N'ќ', N'kj'  
UNION ALL SELECT N'ѝ', N'j'  
UNION ALL SELECT N'ў', N'w'  
UNION ALL SELECT N'џ', N'dz'  
UNION ALL SELECT N'À', N'A'  
UNION ALL SELECT N'Á', N'A'  
UNION ALL SELECT N'Â', N'A'  
UNION ALL SELECT N'Ã', N'A'  
UNION ALL SELECT N'Ä', N'Ae'  
UNION ALL SELECT N'Å', N'Aa'  
UNION ALL SELECT N'Æ', N'Ae'  
UNION ALL SELECT N'Ç', N'C'  
UNION ALL SELECT N'È', N'E'  
UNION ALL SELECT N'É', N'E'  
UNION ALL SELECT N'Ê', N'E'  
UNION ALL SELECT N'Ë', N'E'  
UNION ALL SELECT N'Ì', N'I'  
UNION ALL SELECT N'Í', N'I'  
UNION ALL SELECT N'Î', N'I'  
UNION ALL SELECT N'Ï', N'I'  
UNION ALL SELECT N'Ð', N'D'  
UNION ALL SELECT N'Ñ', N'N'  
UNION ALL SELECT N'Ò', N'O'  
UNION ALL SELECT N'Ó', N'O'  
UNION ALL SELECT N'Ô', N'O'  
UNION ALL SELECT N'Õ', N'O'  
UNION ALL SELECT N'Ö', N'Oe'  
UNION ALL SELECT N'Ø', N'O'  
UNION ALL SELECT N'Ù', N'U'  
UNION ALL SELECT N'Ú', N'U'  
UNION ALL SELECT N'Û', N'U'  
UNION ALL SELECT N'Ü', N'Ue'  
UNION ALL SELECT N'Ý', N'Y'  
UNION ALL SELECT N'Þ', N'Th'  
UNION ALL SELECT N'ß', N'ss'  
UNION ALL SELECT N'à', N'a'  
UNION ALL SELECT N'á', N'a'  
UNION ALL SELECT N'â', N'a'  
UNION ALL SELECT N'ã', N'a'  
UNION ALL SELECT N'ä', N'ae'  
UNION ALL SELECT N'å', N'aa'  
UNION ALL SELECT N'æ', N'ae'  
UNION ALL SELECT N'ç', N'c'  
UNION ALL SELECT N'è', N'e'  
UNION ALL SELECT N'é', N'e'  
UNION ALL SELECT N'ê', N'e'  
UNION ALL SELECT N'ë', N'e'  
UNION ALL SELECT N'ì', N'i'  
UNION ALL SELECT N'í', N'i'  
UNION ALL SELECT N'î', N'i'  
UNION ALL SELECT N'ï', N'i'  
UNION ALL SELECT N'ð', N'd'  
UNION ALL SELECT N'ñ', N'n'  
UNION ALL SELECT N'ò', N'o'  
UNION ALL SELECT N'ó', N'o'  
UNION ALL SELECT N'ô', N'o'  
UNION ALL SELECT N'õ', N'o'  
UNION ALL SELECT N'ö', N'oe'  
UNION ALL SELECT N'ø', N'o'  
UNION ALL SELECT N'ù', N'u'  
UNION ALL SELECT N'ú', N'u'  
UNION ALL SELECT N'û', N'u'  
UNION ALL SELECT N'ü', N'ue'  
UNION ALL SELECT N'ý', N'y'  
UNION ALL SELECT N'þ', N'th'  
UNION ALL SELECT N'ÿ', N'y'  
UNION ALL SELECT N'Ā', N'A'  
UNION ALL SELECT N'ā', N'a'  
UNION ALL SELECT N'Ă', N'A'  
UNION ALL SELECT N'ă', N'a'  
UNION ALL SELECT N'Ą', N'A'  
UNION ALL SELECT N'ą', N'a'  
UNION ALL SELECT N'Ć', N'C'  
UNION ALL SELECT N'ć', N'c'  
UNION ALL SELECT N'Ĉ', N'C'  
UNION ALL SELECT N'ĉ', N'c'  
UNION ALL SELECT N'Ċ', N'C'  
UNION ALL SELECT N'ċ', N'c'  
UNION ALL SELECT N'Č', N'C'  
UNION ALL SELECT N'č', N'c'  
UNION ALL SELECT N'Ď', N'D'  
UNION ALL SELECT N'ď', N'd'  
UNION ALL SELECT N'Đ', N'D'  
UNION ALL SELECT N'đ', N'd'  
UNION ALL SELECT N'Ē', N'E'  
UNION ALL SELECT N'ē', N'e'  
UNION ALL SELECT N'Ĕ', N'E'  
UNION ALL SELECT N'ĕ', N'e'  
UNION ALL SELECT N'Ė', N'E'  
UNION ALL SELECT N'ė', N'e'  
UNION ALL SELECT N'Ę', N'E'  
UNION ALL SELECT N'ę', N'e'  
UNION ALL SELECT N'Ě', N'E'  
UNION ALL SELECT N'ě', N'e'  
UNION ALL SELECT N'Ĝ', N'G'  
UNION ALL SELECT N'ĝ', N'g'  
UNION ALL SELECT N'Ğ', N'G'  
UNION ALL SELECT N'ğ', N'g'  
UNION ALL SELECT N'Ġ', N'G'  
UNION ALL SELECT N'ġ', N'g'  
UNION ALL SELECT N'Ģ', N'G'  
UNION ALL SELECT N'ģ', N'g'  
UNION ALL SELECT N'Ĥ', N'H'  
UNION ALL SELECT N'ĥ', N'h'  
UNION ALL SELECT N'Ħ', N'H'  
UNION ALL SELECT N'ħ', N'h'  
UNION ALL SELECT N'Ĩ', N'I'  
UNION ALL SELECT N'ĩ', N'i'  
UNION ALL SELECT N'Ī', N'I'  
UNION ALL SELECT N'ī', N'i'  
UNION ALL SELECT N'Ĭ', N'I'  
UNION ALL SELECT N'ĭ', N'i'  
UNION ALL SELECT N'Į', N'I'  
UNION ALL SELECT N'į', N'i'  
UNION ALL SELECT N'İ', N'I'  
UNION ALL SELECT N'ı', N'i'  
UNION ALL SELECT N'IJ', N'Ij'  
UNION ALL SELECT N'ij', N'ij'  
UNION ALL SELECT N'Ĵ', N'J'  
UNION ALL SELECT N'ĵ', N'j'  
UNION ALL SELECT N'Ķ', N'K'  
UNION ALL SELECT N'ķ', N'k'  
UNION ALL SELECT N'ĸ', N'k'  
UNION ALL SELECT N'Ĺ', N'L'  
UNION ALL SELECT N'ĺ', N'l'  
UNION ALL SELECT N'Ļ', N'L'  
UNION ALL SELECT N'ļ', N'l'  
UNION ALL SELECT N'Ľ', N'L'  
UNION ALL SELECT N'ľ', N'l'  
UNION ALL SELECT N'Ŀ', N'L'  
UNION ALL SELECT N'ŀ', N'l'  
UNION ALL SELECT N'Ł', N'L'  
UNION ALL SELECT N'ł', N'l'  
UNION ALL SELECT N'Ń', N'N'  
UNION ALL SELECT N'ń', N'n'  
UNION ALL SELECT N'Ņ', N'N'  
UNION ALL SELECT N'ņ', N'n'  
UNION ALL SELECT N'Ň', N'N'  
UNION ALL SELECT N'ň', N'n'  
UNION ALL SELECT N'ʼn', N'n'  
UNION ALL SELECT N'Ŋ', N'N'  
UNION ALL SELECT N'ŋ', N'n'  
UNION ALL SELECT N'Ō', N'O'  
UNION ALL SELECT N'ō', N'o'  
UNION ALL SELECT N'Ŏ', N'O'  
UNION ALL SELECT N'ŏ', N'o'  
UNION ALL SELECT N'Ő', N'O'  
UNION ALL SELECT N'ő', N'o'  
UNION ALL SELECT N'Œ', N'Oe'  
UNION ALL SELECT N'œ', N'oe'  
UNION ALL SELECT N'Ŕ', N'R'  
UNION ALL SELECT N'ŕ', N'r'  
UNION ALL SELECT N'Ŗ', N'R'  
UNION ALL SELECT N'ŗ', N'r'  
UNION ALL SELECT N'Ř', N'R'  
UNION ALL SELECT N'ř', N'r'  
UNION ALL SELECT N'Ś', N'S'  
UNION ALL SELECT N'ś', N's'  
UNION ALL SELECT N'Ŝ', N'S'  
UNION ALL SELECT N'ŝ', N's'  
UNION ALL SELECT N'Ş', N'S'  
UNION ALL SELECT N'ş', N's'  
UNION ALL SELECT N'Š', N'S'  
UNION ALL SELECT N'š', N's'  
UNION ALL SELECT N'Ţ', N'T'  
UNION ALL SELECT N'ţ', N't'  
UNION ALL SELECT N'Ť', N'T'  
UNION ALL SELECT N'ť', N't'  
UNION ALL SELECT N'Ŧ', N'T'  
UNION ALL SELECT N'ŧ', N't'  
UNION ALL SELECT N'Ũ', N'U'  
UNION ALL SELECT N'ũ', N'u'  
UNION ALL SELECT N'Ū', N'U'  
UNION ALL SELECT N'ū', N'u'  
UNION ALL SELECT N'Ŭ', N'U'  
UNION ALL SELECT N'ŭ', N'u'  
UNION ALL SELECT N'Ů', N'U'  
UNION ALL SELECT N'ů', N'u'  
UNION ALL SELECT N'Ű', N'U'  
UNION ALL SELECT N'ű', N'u'  
UNION ALL SELECT N'Ų', N'U'  
UNION ALL SELECT N'ų', N'u'  
UNION ALL SELECT N'Ŵ', N'W'  
UNION ALL SELECT N'ŵ', N'w'  
UNION ALL SELECT N'Ŷ', N'Y'  
UNION ALL SELECT N'ŷ', N'y'  
UNION ALL SELECT N'Ÿ', N'Y'  
UNION ALL SELECT N'Ź', N'Z'  
UNION ALL SELECT N'ź', N'z'  
UNION ALL SELECT N'Ż', N'Z'  
UNION ALL SELECT N'ż', N'z'  
UNION ALL SELECT N'Ž', N'Z'  
UNION ALL SELECT N'ž', N'z'  
UNION ALL SELECT N'ſ', N's'  
UNION ALL SELECT N'Α', N'A'  
UNION ALL SELECT N'Β', N'V'  
UNION ALL SELECT N'Γ', N'G'  
UNION ALL SELECT N'Δ', N'D'  
UNION ALL SELECT N'Ε', N'E'  
UNION ALL SELECT N'Ζ', N'Z'  
UNION ALL SELECT N'Η', N'I'  
UNION ALL SELECT N'Θ', N'Th'  
UNION ALL SELECT N'Ι', N'I'  
UNION ALL SELECT N'Κ', N'K'  
UNION ALL SELECT N'Λ', N'L'  
UNION ALL SELECT N'Μ', N'M'  
UNION ALL SELECT N'Ν', N'N'  
UNION ALL SELECT N'Ξ', N'X'  
UNION ALL SELECT N'Ο', N'O'  
UNION ALL SELECT N'Π', N'P'  
UNION ALL SELECT N'Ρ', N'R'  
UNION ALL SELECT N'Σ', N'S'  
UNION ALL SELECT N'Τ', N'T'  
UNION ALL SELECT N'Υ', N'Y'  
UNION ALL SELECT N'Φ', N'F'  
UNION ALL SELECT N'Χ', N'Ch'  
UNION ALL SELECT N'Ψ', N'Ps'  
UNION ALL SELECT N'Ω', N'O'  
UNION ALL SELECT N'α', N'a'  
UNION ALL SELECT N'β', N'v'  
UNION ALL SELECT N'γ', N'g'  
UNION ALL SELECT N'δ', N'd'  
UNION ALL SELECT N'ε', N'e'  
UNION ALL SELECT N'ζ', N'z'  
UNION ALL SELECT N'η', N'i'  
UNION ALL SELECT N'θ', N'th'  
UNION ALL SELECT N'ι', N'i'  
UNION ALL SELECT N'κ', N'k'  
UNION ALL SELECT N'λ', N'l'  
UNION ALL SELECT N'μ', N'm'  
UNION ALL SELECT N'ν', N'n'  
UNION ALL SELECT N'ξ', N'x'  
UNION ALL SELECT N'ο', N'o'  
UNION ALL SELECT N'π', N'p'  
UNION ALL SELECT N'ρ', N'r'  
UNION ALL SELECT N'ς', N's'  
UNION ALL SELECT N'σ', N's'  
UNION ALL SELECT N'τ', N't'  
UNION ALL SELECT N'υ', N'y'  
UNION ALL SELECT N'φ', N'f'  
UNION ALL SELECT N'χ', N'ch'  
UNION ALL SELECT N'ψ', N'ps'  
UNION ALL SELECT N'ω', N'o'  
UNION ALL SELECT N'Ѐ', N'E'  
UNION ALL SELECT N'Ё', N'Ye'  
UNION ALL SELECT N'Ђ', N'Dj'  
UNION ALL SELECT N'Ѓ', N'Gj'  
UNION ALL SELECT N'Є', N'Je'  
UNION ALL SELECT N'Ѕ', N'Dz'  
UNION ALL SELECT N'І', N'I'  
UNION ALL SELECT N'Ї', N'Ji'  
UNION ALL SELECT N'Ј', N'J'  
UNION ALL SELECT N'Љ', N'Lj'  
UNION ALL SELECT N'Њ', N'Nj'  
UNION ALL SELECT N'Ћ', N'Tj'  
UNION ALL SELECT N'Ќ', N'Kj'  
UNION ALL SELECT N'Ѝ', N'J'  
UNION ALL SELECT N'Ў', N'W'  
UNION ALL SELECT N'Џ', N'Dz'  
UNION ALL SELECT N'А', N'A'  
UNION ALL SELECT N'Б', N'B'  
UNION ALL SELECT N'В', N'V'  
UNION ALL SELECT N'Г', N'G'  
UNION ALL SELECT N'Д', N'D'  
UNION ALL SELECT N'Е', N'E'  
UNION ALL SELECT N'Ж', N'Zh'  
UNION ALL SELECT N'З', N'Z'  
UNION ALL SELECT N'И', N'I'  
UNION ALL SELECT N'Й', N'J'  
UNION ALL SELECT N'К', N'K'  
UNION ALL SELECT N'Л', N'L'  
UNION ALL SELECT N'М', N'M'  
UNION ALL SELECT N'Н', N'N'  
UNION ALL SELECT N'О', N'O'  
UNION ALL SELECT N'П', N'P'  
UNION ALL SELECT N'Р', N'R'  
UNION ALL SELECT N'С', N'S'  
UNION ALL SELECT N'Т', N'T'  
UNION ALL SELECT N'У', N'U'  
UNION ALL SELECT N'Ф', N'F'  
UNION ALL SELECT N'Х', N'Kh'  
UNION ALL SELECT N'Ц', N'Ts'  
UNION ALL SELECT N'Ч', N'Ch'  
UNION ALL SELECT N'Ш', N'Sh'  
UNION ALL SELECT N'Щ', N'Shch'  
UNION ALL SELECT N'Ъ', N'"'  
UNION ALL SELECT N'Ы', N'Y'  
UNION ALL SELECT N'Ь', N''''  
UNION ALL SELECT N'Э', N'E'  
UNION ALL SELECT N'Ю', N'Yu'  
UNION ALL SELECT N'Я', N'Ya'  
UNION ALL SELECT N'а', N'a'  
UNION ALL SELECT N'б', N'b'  
UNION ALL SELECT N'в', N'v'  
UNION ALL SELECT N'г', N'g'  
UNION ALL SELECT N'д', N'd'  
UNION ALL SELECT N'е', N'e'  
UNION ALL SELECT N'ж', N'zh'  
UNION ALL SELECT N'з', N'z'  
UNION ALL SELECT N'и', N'i'  
UNION ALL SELECT N'й', N'j'  
UNION ALL SELECT N'к', N'k'  
UNION ALL SELECT N'л', N'l'  
UNION ALL SELECT N'м', N'm'  
UNION ALL SELECT N'н', N'n'  
UNION ALL SELECT N'о', N'o'  
UNION ALL SELECT N'п', N'p'  
UNION ALL SELECT N'р', N'r'  
UNION ALL SELECT N'с', N's'  
UNION ALL SELECT N'т', N't'  
UNION ALL SELECT N'у', N'u'  
UNION ALL SELECT N'ф', N'f'  
UNION ALL SELECT N'х', N'kh'  
UNION ALL SELECT N'ц', N'ts'  
UNION ALL SELECT N'ч', N'ch'  
UNION ALL SELECT N'ш', N'sh'  
UNION ALL SELECT N'щ', N'shch'  
UNION ALL SELECT N'ъ', N'"'  
UNION ALL SELECT N'ы', N'y'  
UNION ALL SELECT N'ь', N''''  
UNION ALL SELECT N'э', N'e'  
UNION ALL SELECT N'ю', N'yu'  
UNION ALL SELECT N'я', N'ya'  
UNION ALL SELECT N'ѐ', N'e'  
UNION ALL SELECT N'ё', N'ye'
UNION ALL SELECT N'ђ', N'dj'  
UNION ALL SELECT N'ѓ', N'gj'  
UNION ALL SELECT N'є', N'je'  
UNION ALL SELECT N'ѕ', N'dz'  
UNION ALL SELECT N'і', N'i'  
UNION ALL SELECT N'ї', N'ji'  
UNION ALL SELECT N'ј', N'j'  
UNION ALL SELECT N'љ', N'lj'  
UNION ALL SELECT N'њ', N'nj'  
UNION ALL SELECT N'ћ', N'tj'  
UNION ALL SELECT N'ќ', N'kj'  
UNION ALL SELECT N'ѝ', N'j'  
UNION ALL SELECT N'ў', N'w'  
UNION ALL SELECT N'џ', N'dz';
GO

CREATE FUNCTION [dbo].[ufn_EnName](@name NVARCHAR(4000))
RETURNS NVARCHAR(4000) AS
BEGIN
 DECLARE @Result NVARCHAR(4000);
 SET @Result=@name;
 SELECT @Result=REPLACE(@Result,Rus,Lat) FROM TransLit;
 RETURN @Result;
END;
GO
SELECT [dbo].[ufn_EnName](N'Преобразование-транслитерация');
GO
IF OBJECT_ID('TransLit','U') IS NOT NULL DROP TABLE TransLit;
GO
14 апр 08, 12:53    [5542013]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли у кого готовая функция перевода (транслит) с руского на английский  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
Не работает
REPLACE срабатывает для больших и малых пукавок ...
Надо уточнить реализацию.
А ещё проблема в скорости, не быстрее ли посимвольно? А то эти 600 Replace-ов ...
14 апр 08, 14:07    [5542630]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли у кого готовая функция перевода (транслит) с руского на английский  [new]
лл
Guest
Идея с таблицей приходила в голову, но мне она показалась боле медленной, хоть и выглядит изящнее... К тому же в универсальном подходе нет оптимизации по конвертации в обратную сторону (один транслит. символ соответсвует нескольким).
14 апр 08, 14:48    [5543007]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли у кого готовая функция перевода (транслит) с руского на английский  [new]
bantik
Member

Откуда:
Сообщений: 509
лл
Идея с таблицей приходила в голову, но мне она показалась боле медленной, хоть и выглядит изящнее


Как то коряво получилось. По идее красивый код лучше работает

create procedure Translit
  @parInput  varchar(255),
  @parOutput varchar(255) OUTPUT
as 
/*

Translit -  Транслитерация по инструкции МВД РФ от 30.06.98 N 394 (а также N 1047).

@parInput  - входная строка,
@parOutput - выходная строка OUTPUT 

*/
begin
  declare @Output    varchar(255), 
          @i         tinyint,
          @j         tinyint, 
          @c1        varchar(3),
          @c2        varchar(4),
          @NeenRtrim tinyint

  -- Перегнали входной параметр в UpperCase
  select @parInput = Upper(@parInput)

  select @i         = 1,  
         @Output    = '',
         @NeenRtrim = 0

  -- Пробежимся по всей строке
  while @i <= datalength(@parInput)
  begin
    select @c1 = substring(@parInput,@i,3) 

    -- Заменяем 3*2(слоги из трех букв в русском на слог из двух букв в английском)
    select @j = patindex('%|' + @c1 + '|%',convert(varchar(255),'|ВИЙ|ГИЙ|ДИЙ|НИЙ|СИЙ|ТИЙ|'))   

    if @j > 0
    begin
      select @c2 = substring('|VY||GY||DY||NY||SY||TY',@j + 1,2)
      select @i  = @i + 2
    end 
    else 
    begin
      select @c1 = substring(@parInput,@i,2) 

      -- Заменяем 2*2
      select @j = patindex('%|'+@c1+'|%',convert(varchar(255),'|ЖД|АЙ|ЕЙ|ЁЙ|ИЙ|ИЯ|ОЙх.й|ЫЙ|ЭЙ|ЬЯ|ЬЕ|ЬЁ|ЬА|ЬИ|ЬО|ЬУ|ЬЫ|ЬЭ|ЬЮ|'))

      if @j>0
      begin
        select @c2 = substring(convert(varchar(255),'|ZD|AY|EY|EY|IY|IA|OY|UY|UY|EY|IA|YE|YE|IA|YI|YO|YU|YY|YE|YU|'),@j + 1,2)
        select @i  = @i+1
      end
      else
      begin
        -- Заменяем 2*N
        if @c1 = convert(varchar(255),'КС')
        begin
          select @c2 = 'X' 
          select @i  = @i+1
        end
        else
        if @c1 = convert(varchar(255),'ЮЙ')
        begin
          select @c2 = 'YUY' 
          select @i  = @i+1
        end
        else
        if @c1 = convert(varchar(255),'ЯЙ')
        begin
          select @c2 = 'YAY' 
          select @i  = @i+1
        end
        else
        if @c1 = convert(varchar(255),'ЛЮ')
        begin
          select @c2 = 'LIU' 
          select @i  = @i+1
        end
        -- Заменяем 1*2
        else
        begin       
          select @c1 = substring(@parInput,@i,1) 
          select @j  = patindex('%' + @c1 + '%',convert(varchar(255),'ЖХЦЧШЯЮ'))

          if @j > 0
          begin
            select @c2 = substring('ZHKHTSCHSHYAYU',@j*2 - 1,2)
          end 
          else 
          begin
            -- Заменяем хитрые буквы
            if @c1 = convert(varchar(255),'Щ')
              select @c2 = 'SHCH' 
            else
            if @c1 = convert(varchar(255),'Ъ')
            begin
              select @c2 = '' 
              select @NeenRtrim = 1
            end
            else
            if @c1 = convert(varchar(255),'Ь')
            begin
              select @c2 = ''
              select @NeenRtrim = 1
            end
            else
            -- Заменяем остальные символы
            begin
              select @j = patindex('%' + @c1 + '%',convert(varchar(255),'АБВГДЕЁЗИЙКЛМНОПРСТУФЫЭ QWERTYUIOPASDFGHJKLZXCVBNM'))
              if @j > 0
                select @c2 = substring('ABVGDEEZIYKLMNOPRSTUFYE QWERTYUIOPASDFGHJKLZXCVBNM',@j,1)
              else
                select @c2 = @c1
            end -- 1*1
          end -- 1*2
        end -- 2*2
      end -- 3*2
    end
    select @i = @i + 1
    if @NeenRtrim = 0 --@c2 = ' '
      select @Output = @Output + @c2
    else
      select @Output = rtrim(@Output + @c2)
    select @NeenRtrim = 0
  end
  select @parOutput = @Output
  return 0
end
go
grant exec on Translit to public
go
14 апр 08, 17:59    [5544581]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли у кого готовая функция перевода (транслит) с руского на английский  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
bantik
лл
Идея с таблицей приходила в голову, но мне она показалась боле медленной, хоть и выглядит изящнее


Как то коряво получилось. По идее красивый код лучше работает

create procedure Translit
  @parInput  varchar(255),
  @parOutput varchar(255) OUTPUT
as 
/*

Translit -  Транслитерация по инструкции МВД РФ от 30.06.98 N 394 (а также N 1047).

@parInput  - входная строка,
@parOutput - выходная строка OUTPUT 

*/
begin
  declare @Output    varchar(255), 
          @i         tinyint,
          @j         tinyint, 
          @c1        varchar(3),
          @c2        varchar(4),
          @NeenRtrim tinyint

  -- Перегнали входной параметр в UpperCase
  select @parInput = Upper(@parInput)

  select @i         = 1,  
         @Output    = '',
         @NeenRtrim = 0

  -- Пробежимся по всей строке
  while @i <= datalength(@parInput)
  begin
    select @c1 = substring(@parInput,@i,3) 

    -- Заменяем 3*2(слоги из трех букв в русском на слог из двух букв в английском)
    select @j = patindex('%|' + @c1 + '|%',convert(varchar(255),'|ВИЙ|ГИЙ|ДИЙ|НИЙ|СИЙ|ТИЙ|'))   

    if @j > 0
    begin
      select @c2 = substring('|VY||GY||DY||NY||SY||TY',@j + 1,2)
      select @i  = @i + 2
    end 
    else 
    begin
      select @c1 = substring(@parInput,@i,2) 

      -- Заменяем 2*2
      select @j = patindex('%|'+@c1+'|%',convert(varchar(255),'|ЖД|АЙ|ЕЙ|ЁЙ|ИЙ|ИЯ|ОЙх.й|ЫЙ|ЭЙ|ЬЯ|ЬЕ|ЬЁ|ЬА|ЬИ|ЬО|ЬУ|ЬЫ|ЬЭ|ЬЮ|'))

      if @j>0
      begin
        select @c2 = substring(convert(varchar(255),'|ZD|AY|EY|EY|IY|IA|OY|UY|UY|EY|IA|YE|YE|IA|YI|YO|YU|YY|YE|YU|'),@j + 1,2)
        select @i  = @i+1
      end
      else
      begin
        -- Заменяем 2*N
        if @c1 = convert(varchar(255),'КС')
        begin
          select @c2 = 'X' 
          select @i  = @i+1
        end
        else
        if @c1 = convert(varchar(255),'ЮЙ')
        begin
          select @c2 = 'YUY' 
          select @i  = @i+1
        end
        else
        if @c1 = convert(varchar(255),'ЯЙ')
        begin
          select @c2 = 'YAY' 
          select @i  = @i+1
        end
        else
        if @c1 = convert(varchar(255),'ЛЮ')
        begin
          select @c2 = 'LIU' 
          select @i  = @i+1
        end
        -- Заменяем 1*2
        else
        begin       
          select @c1 = substring(@parInput,@i,1) 
          select @j  = patindex('%' + @c1 + '%',convert(varchar(255),'ЖХЦЧШЯЮ'))

          if @j > 0
          begin
            select @c2 = substring('ZHKHTSCHSHYAYU',@j*2 - 1,2)
          end 
          else 
          begin
            -- Заменяем хитрые буквы
            if @c1 = convert(varchar(255),'Щ')
              select @c2 = 'SHCH' 
            else
            if @c1 = convert(varchar(255),'Ъ')
            begin
              select @c2 = '' 
              select @NeenRtrim = 1
            end
            else
            if @c1 = convert(varchar(255),'Ь')
            begin
              select @c2 = ''
              select @NeenRtrim = 1
            end
            else
            -- Заменяем остальные символы
            begin
              select @j = patindex('%' + @c1 + '%',convert(varchar(255),'АБВГДЕЁЗИЙКЛМНОПРСТУФЫЭ QWERTYUIOPASDFGHJKLZXCVBNM'))
              if @j > 0
                select @c2 = substring('ABVGDEEZIYKLMNOPRSTUFYE QWERTYUIOPASDFGHJKLZXCVBNM',@j,1)
              else
                select @c2 = @c1
            end -- 1*1
          end -- 1*2
        end -- 2*2
      end -- 3*2
    end
    select @i = @i + 1
    if @NeenRtrim = 0 --@c2 = ' '
      select @Output = @Output + @c2
    else
      select @Output = rtrim(@Output + @c2)
    select @NeenRtrim = 0
  end
  select @parOutput = @Output
  return 0
end
go
grant exec on Translit to public
go
Какой красивый код!
14 апр 08, 19:26    [5544853]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли у кого готовая функция перевода (транслит) с руского на английский  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
iap
процедурно-мыслящий bantik
...
Какой красивый код!
Просто абалденный. Хотя зря смеюсь, видимо мучается человек на MS SQL 7.0
Ладно подупростим:
CREATE FUNCTION dbo.TransLit (
	 @@String	VarChar(max)
) RETURNS VarChar(max) AS BEGIN
	DECLARE	 @Output	VarChar(max)
		,@Counter	Int

	-- Перегнали в UpperCase - уже лажа полная!
	SELECT	 @@String	= Upper(@@String)
		,@Counter	= 1
		,@Output	= ''

	-- Пробежимся по всей строке
	WHILE (@Counter <= DataLength(@@String))
		SELECT	 @Output	= @Output
					+ CASE	WHEN J3 > 0 THEN         SubString('|VY||GY||DY||NY||SY||TY'							,J3 + 1,2)
						WHEN J2 > 0 THEN Replace(SubString('|ZD|AY|EY|EY|IY|IA|OY|UY|YY|EY|IA|YE|YE|IA|YI|YO|YU|YY|YE|YU|X||YUYYAYLIU'	,J2 + 1,3),'|','')
						WHEN J1 > 0 THEN         SubString('ZHKHTSCHSHYAYU'								,J1*2 - 1,2)
						WHEN J0 > 0 THEN         SubString('ABVGDEEZIYKLMNOPRSTUFYE'							,J0,1)
						ELSE Replace(SubString(@@String,@Counter,1),'Щ','SHCH')
						END
			,@Counter	= @Counter
					+ CASE	WHEN J3 > 0 THEN 3
						WHEN J2 > 0 THEN 2
						ELSE 1
						END
		FROM	(SELECT	 PatIndex('%|' + SubString(@@String,@Counter,3) + '|%','|ВИЙ|ГИЙ|ДИЙ|НИЙ|СИЙ|ТИЙ|'							) AS J3
				,PatIndex('%|' + SubString(@@String,@Counter,2) + '|%','|ЖД|АЙ|ЕЙ|ЁЙ|ИЙ|ИЯ|ОЙх.й|ЫЙ|ЭЙ|ЬЯ|ЬЕ|ЬЁ|ЬА|ЬИ|ЬО|ЬУ|ЬЫ|ЬЭ|ЬЮ|КС|ЮЙ|ЯЙ|ЛЮ|'	) AS J2
				,PatIndex('%'  + SubString(@@String,@Counter,1) +  '%','ЖХЦЧШЯЮ'									) AS J1
				,PatIndex('%'  + SubString(@@String,@Counter,1) +  '%','АБВГДЕЁЗИЙКЛМНОПРСТУФЫЭЪЬ'							) AS J0) J

	RETURN	@Output
END
GO
Осталось тока от Upper Case избавиться. Ну?
15 апр 08, 01:29    [5545590]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли у кого готовая функция перевода (транслит) с руского на английский  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
Mnior
мучается человек на MS SQL 7.0
Точнее 6.5
15 апр 08, 01:30    [5545592]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли у кого готовая функция перевода (транслит) с руского на английский  [new]
bantik
Member

Откуда:
Сообщений: 509
Mnior
Mnior
мучается человек на MS SQL 7.0
Точнее 6.5


Точнее SYBASE :-) Последний вариант еще элегантнее, признаюсь. Только нужно его промерять с точки зрения CPU и I/O - все же задачка не совсем для SQL сервера - это типичная расчетная фишка (типа как CRC32) - ее лучше на клиента или третий слой вытаскивать.
15 апр 08, 10:20    [5546148]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли у кого готовая функция перевода (транслит) с руского на английский  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
bantik
Только нужно его промерять с точки зрения CPU и I/O
Слава богу что для константных данных SQL оптимизит не так как с таблицами, а просто по чёрному колбасит :). Ну а для старенького оптимизатора моно разбить на 3(4) последовательных малениких селекта (без CASE) с условием (WHERE J > 0) и проверять например по @@RowCount срабатывание каждого. Тогдысь не придерёшся.
Лучше в С# путать, вместо if - where или when, и вместо swith - case; чем в SQL наоборот. И вспоминать часами, а что означает оператор while и begin, на procedure говорить - неизвестный тип функции, а на cursor - ошибка синтаксиса.
15 апр 08, 12:44    [5547568]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли у кого готовая функция перевода (транслит) с руского на английский  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
А как Case Sensitive одолеть то?
15 апр 08, 12:46    [5547598]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить