Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem SQL dotaz

Dobrý den,
prosím o radu. Mám SQL dotaz, kterým chci vybrat osoby s příjmením začínajícím na A-K.

SELECT o.prijmeni
FROM osoba o
WHERE o.prijmeni SIMILAR TO '[A-K]%'

Problémem je, že PostgreSQL 9.6 vynechá příjmení začínající českým znakem (např.: Čermák) - to řadí až na konec abecedy.
Dá se někde nastavit aby klauzule "SIMILAR TO '[A-K]%'" počítala s českou abecedou?

Z dokumentace se mi to nějak nedaří vyčíst.

Předem díky
Pavel

Předmět Autor Datum
Jak jenastaveno locale databáze / tabulky / sloup e? Pokud řadí znaky s diakritikou až na konci, tak…
Jan Fiala 14.03.2019 05:51
Jan Fiala
umožňuje, dokonce to někdy je jediná možnost, jak se dobrat výsledku: https://simply.name/pg-lc-col…
touchwood 14.03.2019 07:03
touchwood
tuším, že je potřeba použít COLLATE nebo NAMES a nebo něco jako natural něco (nemyslím natural join!… poslední
webo 14.03.2019 11:42
webo

Jak jenastaveno locale databáze / tabulky / sloup e? Pokud řadí znaky s diakritikou až na konci, tak je špatně nastavené locale.
Umožňuje Postgree definovat locale přímo v dotazu?
Jako poslední možnost můžeš znaky s diakritikou mezi A-K přidat do zavorky

tuším, že je potřeba použít COLLATE nebo NAMES a nebo něco jako natural něco (nemyslím natural join!). To collate se se může nastavit jako samostatný příkaz na začátku a nebo součástí dotazu (ke konci dotazu)

A rada, správnější by bylo pro operátor typu "Začíná na" než na obecný "vyhovuje patternu", aby bylo hledání rychlejší. I když si myslím, že moderní DB systémy by uměly vyhodnotit že pattern má charakter "začíná na" a interně "optimalizovat" zadaný operátor "vyhovuje patternu " na hledání "začíná na"

Zpět do poradny Odpovědět na původní otázku Nahoru