postgresql razeni

Honza Pazdziora adelton na fi.muni.cz
Středa Listopad 16 10:40:53 CET 2005


On Tue, Nov 15, 2005 at 11:08:55PM +0100, Pavel Raus wrote:
> resim problem s razenim v postgresql.
> locales mam cs_CZ, databazi v LATIN2, takze vse by melo byt v poradku. Kdyz 
> setridim text, tak hacky carky jsou OK, ale cisla mam az na konci. Potreboval 
> bych to obracene ( tj. cisla na zacatku a pak pismenka ), ale nikde jsem k 
> tomu nic nenasel.
> 
> Testovano na postgresql 8.0 a 8.1, oboji se stejnym 'uspechem'.
> 
> Zatim to neresim nad 'ostrymi' daty, takze si mohu dovolit experimentovat.
> 
> Za kazde nakopnuti spravnym smerem budu vdecen.
> 
> show all :
> lc_collate                      | cs_CZ 
> server_encoding                 | LATIN2

PostgreSQL, pokud vim, pouziva locales systemu, na kterem bezi. Pokud
udelate na prikazove radce

	$ ( echo '1' ; echo 'jezek' ) | LC_COLLATE=cs_CZ sort

tak predpokladam dostanete (take)

	jezek
	1

Toto razeni dostavate proto, "bo tak je to v cestine spravne a tak to
ma byt". Pokud chcete razeni jine, nevyuzivajici razeni poskytovane
systemovymi locales, mate v zasade dve moznosti:

- vyrobit si jine locales;
- nebo misto pouziti standardniho order by pouzit nejakou funkci, ktera
  hodi retezce s cislicemi na zacatek, at uz dynamicky, nebo nejakym
  pomocnym atributem v tabulkach.

-- 
------------------------------------------------------------------------
 Honza Pazdziora | adelton na fi.muni.cz | http://www.fi.muni.cz/~adelton/
 .project: Perl, mod_perl, DBI, Oracle, large Web systems, XML/XSL, ...
		Only self-confident people can be simple.


Další informace o konferenci Databases