Как убрать акценты и все символы <> a..z в sql-server?

Мне нужно внести следующие изменения в поле varchar (20):

  1. заменить акценты с обычными буквами (например, от è до e)
  2. после (1) удалите все символы, не входящие в a..z

например,

'aèàç=.32s df' 

должен стать

'aeacsdf'

, есть ли специальные сохраненные функции, чтобы легко достичь этого?

ОБНОВЛЕНИЕ : предоставьте решение T-SQL, а не CLR. Это обходной путь, который я временно использовал, потому что он временно соответствует моим потребностям, в любом случае было бы лучше использовать более элегантный подход.

CREATE FUNCTION sf_RemoveExtraChars (@NAME nvarchar(50))
RETURNS nvarchar(50)
AS
BEGIN
  declare @TempString nvarchar(100)
  set @TempString = @NAME 
  set @TempString = LOWER(@TempString)
  set @TempString =  replace(@TempString,' ', '')
  set @TempString =  replace(@TempString,'à', 'a')
  set @TempString =  replace(@TempString,'è', 'e')
  set @TempString =  replace(@TempString,'é', 'e')
  set @TempString =  replace(@TempString,'ì', 'i')
  set @TempString =  replace(@TempString,'ò', 'o')
  set @TempString =  replace(@TempString,'ù', 'u')
  set @TempString =  replace(@TempString,'ç', 'c')
  set @TempString =  replace(@TempString,'''', '')
  set @TempString =  replace(@TempString,'`', '')
  set @TempString =  replace(@TempString,'-', '')
  return @TempString
END
GO
39
задан LaBracca 26 October 2010 в 16:56
поделиться