postgresql razeni

Petr Jelinek pjmodos na seznam.cz
Středa Listopad 16 16:08:07 CET 2005


Honza Pazdziora napsal(a):
> - 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.
> 

Muzete si napsat funkci ktera jen nahradi cisla necim co se radi pred 
textem a tu pak pouzit v order by, pripadne v indexu neco jako

CREATE FUNCTION number_replace(text) RETURNS text
     AS $_$SELECT 
replace(replace(replace(replace(replace(replace(replace(replace(replace(replace($1, 
'0', '#0'), '1', '#1'), '2', '#2'), '3', '#3'), '4', '#4'),
  '5', '#5'), '6', '#6'), '7', '#7'), '8', '#8'), '9', '#9')$_$
     LANGUAGE sql IMMUTABLE;

by mohlo fungovat (jen nevim jestli se # zrovna radi pred pismena), to 
IMMUTABLE je dulezite pokud chcete delat index
pak je mozne pouzit
SELECT * FROM tabulka ORDER BY number_replace(sloupec);
nebo
CREATE INDEX tabulka_sloupec_idx ON tabulka (number_replace(sloupec));


-- 
Regards
Petr Jelinek (PJMODOS)
www.parba.cz


Další informace o konferenci Databases