Xpoint
   [напомнить пароль]

Перебор и замена символов в строке

Метки: [без меток]
2006-12-04 21:06:36 [обр] Michael Yevdokimov(0/3)[досье]

Приветствую!

Может кто подскажет (желательно на примерах), как осуществить замену набора символов из строки на какие-то другие?

Мне нужно на самом деле создать фильтр, который бы заменял уйму символов аля "о с тильдой" (ő) или "s с черточкой" (ś) на, соответственно, о и s без всяких черточек. Заменяемые символы происходят из Unicode-набора.

Простой вариант я, конечно, попробовал:

SET @replace_with_char = 'o'
set @replace_what_char = NCHAR(0x0151) --'&&#337&&'
set @text = REPLACE(@text, @replace_what_char,@replace_with_char)

SET @replace_with_char = 's'
set @replace_what_char = NCHAR(0x015B) --'&&#347&&'
set @text = REPLACE(@text, @replace_what_char,@replace_with_char)

Но тогда получается 400 строк кода, что приводит к существенным тормозам. А мне ведь этот код надо будет потом оформить в виде функции и использовать как фильтр к поисковым запросам, что с моим вариантом совершенно не годится... :(

Идеально было бы иметь наборы искомых значений (аля массив), каждый из которых соответствовал бы некоторой букве из English.

Может у кого есть какие мысли, как "забацать" такой фильтр (именно в SQL!) не в ущерб (не такой большой как в моем примере) производительности?

База: MSSQL2000

Заранее благодарю!

С уважением,
Михаил

спустя 57 минут [обр] Michael Yevdokimov(0/3)[досье]
Тему, наверное, можно закрывать. Решение подсказали очень хорошее на SQL.ru: http://www.sql.ru/forum/actualthread.aspx?tid=370147
Powered by POEM™ Engine Copyright © 2002-2005