4. 4. 2008

 

SQL Server - odstranění české diakritiky

Jak na ořezání české diakritiky v CHAR-ovém nebo VARCHAR-ovém sloupci nebo proměnné?

Přetypovat na VARCHAR stejné délky a využít toho, že např. ruská kódová stránka neobsahuje žádný znak s českou diakritikou:

SELECT CAST(Sloupec AS VARCHAR(8000)) COLLATE Cyrillic_General_CI_AS
FROM dbo.Tabulka

Příklad:

SELECT CAST('Příliš žluťoučký kůň úpěl ďábelské ódy' AS VARCHAR(8000)) COLLATE Cyrillic_General_CI_AS AS Vysledek


Vysledek
-----------------------------------------------------------
Prilis zlutoucky kun upel dabelske ody

(1 row(s) affected)


Funguje na SQL2000+.

Pozor, nefunguje pro Unicode typy NCHAR a NVARCHAR, tam by asi bylo jediné řešení napsat si funkci s konverzní tabulkou (á->a, č->c, ď->d atd.).

Štítky:

Komentáře:
Skvely! Jinak aby to slo pro nvarchar/nchar, staci pouze toto:

DECLARE @in nVARCHAR(100)
SET @in = 'Příliš žluťoučký kůň úpěl ďábelské ódy'

SELECT convert(varchar,@in) COLLATE Cyrillic_General_CI_AS AS Vysledek

:D
voldy
 
Jen oprava :-)

DECLARE @in NVARCHAR(1000)
SET @in = 'Příliš žluťoučký kůň úpěl ďábelské ódy'

SELECT convert(varchar(1000),@in) COLLATE Cyrillic_General_CI_AS AS Vysledek
 
Jen oprava :-)

DECLARE @in NVARCHAR(1000)
SET @in = 'Příliš žluťoučký kůň úpěl ďábelské ódy'

SELECT convert(varchar(1000),@in) COLLATE Cyrillic_General_CI_AS AS Vysledek
 
Okomentovat

Přihlášení k odběru Komentáře k příspěvku [Atom]





<< Domovská stránka