Sziasztok!
Túrtam a netet, de nem találtam megoldást. Mit kell még beállítani a korrekt rendezéshez?
sgyori@hp6730s:~$ psql tag
psql (8.4.5)
Type "help" for help.
tag=# show LC_COLLATE;
lc_collate
-------------
hu_HU.UTF-8
(1 row)
tag=# select telepules from telepulesek order by telepules;
telepules
--------------------------
Aba
Abádszalók
Abaliget
Abasár
Abaújalpár
Abaújkér
Abaújlak
Abaújszántó
Abaújszolnok
Abaújvár
Abda
Abod
Abony
Ábrahámhegy
Ács
Acsa
...
- 6949 megtekintés
Hozzászólások
Ezt próbáld ki:
http://github.com/underley/postgresql-nls-string
Én nem tudok más szoftverről, ami PostgreSQL-ben az LC_COLLATE-et figyelembe venné. Bár ez régi információ. Ha van frissebb, javítsatok ki!
- A hozzászóláshoz be kell jelentkezni
Figyelembe veszi az LC_COLLATE értéket, de egyformának tekinti a magánhangzók rövid és hosszú változatát. lásd: http://hup.hu/node/96967#comment-1183990.
- A hozzászóláshoz be kell jelentkezni
"Mit kell még beállítani a korrekt rendezéshez?"
Első ránézésre nem teljesen látom a problémát, a lista jónak tűnik. Az ékezetes betűkkel lenne baj?
A szabály így szól:
"A betűrendbe sorolás
14. d) A magánhangzók rövid és hosszú változatát jelölő betűk (a – á, e – é, i – í, o – ó, ö – ő, u – ú, ü – ű) a kialakult szokás szerint mind a szavak elején, mind pedig a szavak belsejében azonos értékűnek számítanak a betűrendbe sorolás szempontjából. A magánhangzó hosszú változatát tartalmazó szó tehát meg is előzheti a rövid változatút:
ír Irán író
Irak írandó iroda
iram iránt irónia stb.
A rövid magánhangzós szó kerül viszont előbbre olyankor, ha két szó betűsora csak az azonos magán¬hangzók hosszúsága tekintetében különbözik:
égbolt kerek szel
Égei-tenger kerék szél
Eger keres szelel
egér kérés szeles
éger koros szelés
égés kóros széles
egész stb. kórós stb. szelet stb.
"
- A hozzászóláshoz be kell jelentkezni
Valóban az zavar, hogy egyformának tekinti a rövid és a hosszú magánhangzókat. Köszönöm a linket, az ember vén fejjel is midig tanul valamit :-)
Ezek után a módosított kérdés:
Hogy lehet rávenni a postgrest, hogy ezeket különbözőnek tekintve rendezzen, tehát az A előzze meg az Á-t?
Köszi!
- A hozzászóláshoz be kell jelentkezni
Üdv.
Ugyanez a kérdés foglalkoztat most engem is, de nem nagyon találok rá megoldást. (8.4-es verzióval)
Sikerült megoldani valahogy végül?
I am the god of hellfire, and I bring you...
- A hozzászóláshoz be kell jelentkezni
Létre kell hozni a megfelelő collation-t (rendezés). Oprendszer szinten.
Aztán ezt be kell állítani a db-nek/táblának/oszlopnak (ahogy akarod).
--
Gábriel Ákos
http://i-logic.hu
- A hozzászóláshoz be kell jelentkezni
Köszönöm a választ.
I am the god of hellfire, and I bring you...
- A hozzászóláshoz be kell jelentkezni
Valahogyan sikerült (majdnem 20 éve, dbase adatbázisban), de nem fog tetszeni...
Készítettem egy kapcsolt táblát, amelybe a rendezendő halmazt egy függvényen keresztül nyomtam be, amely függvény a karakatereket ill. karaktercsoportokat új karakterkészletre mappelte kb. így
a := a
á := b
b := c
c := d
cs := e
d := f
...
és kapott a tábla egy indexet erre a csúnya mezőre.
Valahányszor szükség volt a szigorú ABC szerinti rendezettségre, joinoltam (mármint a dbase-es megfelelővel) a segédtáblát, és a rendezettséget a csúnya mező határozta meg.
Tkp. olyan UDF-fel, amely a fenti mapet elvégzi, és az UDF-re ülő indexszel ugyanez elérhető segédtábla nélkül... alig kevésbé csúnyán.
- A hozzászóláshoz be kell jelentkezni