ďťż
 
"Customowe" sortowanie pola w bazie ďťż
 
"Customowe" sortowanie pola w bazie
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

"Customowe" sortowanie pola w bazie



pangrubba - 14-12-2006 16:08
"Customowe" sortowanie pola w bazie
  "Customowe" sortowanie pola w bazie

Mam pole w tabeli (nazwijmy je "sygnatura"), w którym zapisywane s? dane w
formacie: "rok":"liczba"/"liczba", przy czym "liczba" mo?e mie? jeszcze literk?
na ko?cu ;) CZyli na przyk?ad takie dane:
1984:2/23
1984:123a/5

Chcia?bym, ?eby te dane sortowa?y si? nie w kolejno?ci alfabetycznej ale
liczbowej ("1984:2/23" powinno by? przed "1984:123a/5", a "1984:2/3"
przed "1984:2/23").

Mój pomys? na rozwi?zanie problemu jest taki - doda? triggera "after
update/insert" na tym polu, który generowa?by warto?ci poprawnie sortowane
przez normalne sortowanie alfabetyczne - wstawia?by te warto?ci do nowego
pola "sort_order" i potem w zapytaniach w klauzuli ORDER BY korzysta?oby si? z
tego sort_order.
Zak?adaj?c, ?e "liczba" nie przekracza czterech cyfr to dla
warto?ci "1984:123a/5" w polu "sygnatura" wstawialiby?my
warto?? "1984:0123a/0005" do pola "sort_order"

My?licie, ?e to dobry pomys??

Jedynym problemem jest dla mnie wyci?gni?cie w triggerze tych cyfr ze ?rodka
sygnatury - musz? to zrobi? pod Firebirdem 1.5, ale na pewno da si? to zrobi?
przy pomocy jakich? UDF'ów (ewentualnie trzeba b?dzie samemu napisa? udf'a)

--
Wys?ano z serwisu OnetNiusy: http://niusy.onet.pl





Grzegorz Danowski - 14-12-2006 16:08

  "pangrubba" <pangrubbaWYTNIJTO@poczta.onet.pl> wrote in message
news:4d04.000000a9.45716f98@newsgate.onet.pl...
> "Customowe" sortowanie pola w bazie
>
> Mam pole w tabeli (nazwijmy je "sygnatura"), w którym zapisywane s? dane w
> formacie: "rok":"liczba"/"liczba", przy czym "liczba" mo?e mie? jeszcze
> literk?
> na ko?cu ;) CZyli na przyk?ad takie dane:
> 1984:2/23
> 1984:123a/5
>
> Chcia?bym, ?eby te dane sortowa?y si? nie w kolejno?ci alfabetycznej ale
> liczbowej ("1984:2/23" powinno by? przed "1984:123a/5", a "1984:2/3"
> przed "1984:2/23").
>

A nie mo?esz zamiast jednego pola u?ywa? trzech (albo nawet pi?ciu, po
wy??czeniu symboli literowych do osobnych kolumn)?
G.




pangrubba - 14-12-2006 16:09

  > A nie mo?esz zamiast jednego pola u?ywa? trzech (albo nawet pi?ciu, po
> wy??czeniu symboli literowych do osobnych kolumn)?

Niestety nie. Prawda jest taka, ?e dane pochodz? z papierowych dokumentów i
musz? by? z nimi w 100% zgodne, a na papierze czasami s? "?mieci" w ogóle nie
pasuj?ce do tego wzorca.

--
Wys?ano z serwisu OnetNiusy: http://niusy.onet.pl




pangrubba - 14-12-2006 16:09

  Dla potomnych:

Stwierdzi?em, ?e nie musz? si? przejmowa? jaki format maj? dane w tym polu.
Napisa?em funkcj?, która w przekazanym stringu uzupe?nia wszystkie liczby
(ci?gi cyfr) zerami do 4 cyfr.
Np. ze stringa "a1-23456.78" robi "a0001-23456.0078"

W tym przypadku wynikowe dane s? ju? poprawnie sortowane.

--
Wys?ano z serwisu OnetNiusy: http://niusy.onet.pl
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    [MSSQL2000] Problem z =?ISO-8859-2?Q?tabel=B1/indeksem/zapytanie?==?ISO-8859-2?Q?m_czy_b=B3=B1d_w_bazie_danych=2E=2E=2E?= =?ISO-8859-2?Q?=5BORACLE=2C_ORDER_BY=5D_Czy_indeksowane_?==?I SO-8859-2?Q?kolumny_przy=B6piesz=B1_sortowanie=3F?= =?ISO-8859-2?Q?b=B3=B1d_w_bazie=2C_nie_wiem_od_czego?==?ISO-8859-2?Q?_zaczac_szukanie?= Jak =?ISO-8859-2?Q?zamieni=E6_dwa_pola_jednej_kolumny_?==?ISO-8859-2?Q?w_dw=F3ch_rekordach_za_pomoc=B1_jednego_zapyt? ==?ISO-8859-2?Q?ania=3F?= [MySQL] Problem z zapisem danych w bazie danych [oracle] [xml] XML na bazie istniejacej struktury ? Jak =?ISO-8859-2?Q?pobra=E6_mo=BFliwe_warto=B6ci_z_pola_?==?ISO-8859-2?Q?typu_ENUM?= [MySQL] Jaki typ pola aby =?ISO-8859-2?Q?trzyma=E6_liczby_od?==?ISO-8859-2?Q?dzielone_przecinkiem_=3F?= Problem z funkcja mysql_real_escape_string() na bazie mysql sql -> tworzenie nowej kolumny z dzielenia 2 innych i sortowanie po niej
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • kfia-tek.keep.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com