RSS registrovat login
Navigace: předchozí stranaúvodní strana
Odstranění diakritiky v MSSQL

Potřeboval jsem odstranit diakritiku - většinou se to používá třeba na vyhledávání, kdy zadáme něco bez diakritiky a chceme najít výrazy i s diakritikou (třeba krize najde i kříže :-)). Co se týče vyhledávání, tak stačí použít collate - viz třeba článek na webu interval.cz.

Já jsem ale potřeboval něco trochu jiného - vzít data ze dvou sloupců a složit je dohromady, aby výsledek neobsahoval diakritiku. Nejdřív jsem tedy zkusil udelat vyraz typu:

select data + data2 collate sql_latin1_general_cp1251_ci_as from table

Syntax higlighted by Syntax highlighter, available at www.4ITDevelopers.net and www.JakNaWin.com

jenže to mi nefungovalo. Na druhou stranu, výraz
select 'ýáí' + 'ýáí' collate sql_latin1_general_cp1251_ci_as

Syntax higlighted by Syntax highlighter, available at www.4ITDevelopers.net and www.JakNaWin.com
fungoval. Nakonec jsem zjistil, že collate funguje pouze pro varchar, zatímco tabulka používala nvarchar. Takže pokud někde používáte unicode, tak je zřejmě potřeba to ještě zkonvertovat. Na závěr malá ukázka:

create table #foo( data nvarchar(
256
) collate Czech_CI_AS, data2 nvarchar(
256
) collate Czech_CI_AS ) GO insert into #foo(data, data2) values('ýáí', 'ýáí') select cast(data + data2 as varchar(
256
)) collate sql_latin1_general_cp1251_ci_as from #foo GO drop table #foo

Syntax higlighted by Syntax highlighter, available at www.4ITDevelopers.net and www.JakNaWin.com


Informace ke stavu builder.cz zde


vytvořil Mi.Chal. 5.1. 2009 11:05, naposledy změněnil Mi.Chal. 5.1. 2009 11:06
přečteno: 5383x

Komentáře:
Žádné komentáře dosud nebyly vloženy.

Přidat komentář:
Jméno
E-mail
Web
Titulek
Obsah
thomas sabo rea mbt outlet thomas sabo charms sale louis vuitton taschen kaufen thomas sabo boutique mbt kaufen