Как убрать акценты и все символы <> a..z в sql-сервере? - PullRequest
38 голосов
/ 26 октября 2010

Мне нужно внести следующие изменения в поле 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

Ответы [ 12 ]

0 голосов
/ 08 июня 2016
select * from database_name.table_name 
where countries LIKE '%é%'
or countries like'%é%'
or countries like'%ê%'
or countries like'%ë%'
or countries like'%è%'
or countries like'%É%'
or countries like'%È%'
or countries like'%Ê%'
or countries like'%Ë%'
or countries like'%ð%'
or countries like'%Ð%'
or countries like'%â%'
or countries like'%à%'
or countries like'%á%'
or countries like'%ã%'
or countries like'%æ%'
or countries like'%à%'
or countries like'%å%'
or countries like'%Å%'
or countries like'%À%'
or countries like'%Á%'
or countries like'%Â%'
or countries like'%Ã%'
or countries like'%Æ%'
or countries like'%ä%'
or countries like'%Ä%'
or countries like'%ï%'
or countries like'%î%'
or countries like'%ì%'
or countries like'%í%'
or countries like'%Ì%'
or countries like'%Í%'
or countries like'%Î%'
or countries like'%Ï%'
or countries like'%ô%'
or countries like'%ò%'
or countries like'%ó%'
or countries like'%õ%'
or countries like'%ø%'
or countries like'%Ò%'
or countries like'%Ó%'
or countries like'%Ô%'
or countries like'%Õ%'
or countries like'%Ø%'
or countries like'%ö%'
or countries like'%Ö%'
or countries like'%û%'
or countries like'%ù%'
or countries like'%ú%'
or countries like'%Ù%'
or countries like'%Ú%'
or countries like'%Û%'
or countries like'%Ü%'
or countries like'%ü%'
or countries like'%ñ%'
or countries like'%Ñ%'
or countries like'%Ç%'
or countries like'%ç%'
or countries like'%ý%'
or countries like'%ÿ%'
or countries like'%Ý%'
or countries like'%þ%'
or countries like'%Þ%'
or countries like'%ß%';
0 голосов
/ 01 февраля 2016

Всего два цента от меня

select * From XXX  
    where cast(word as varchar(max)) collate SQL_Latin1_General_CP1253_CI_AI = 'sluiten' collate SQL_Latin1_General_CP1253_CI_AI
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...