[PGSQL] Sortowanie po statusie - troche skomplikowane
Pawel - 13-03-2006 11:23
[PGSQL] Sortowanie po statusie - troche skomplikowane
Mam sobie tabelke w ktorej jednym z pol jest pole status(pole liczbowe) Jest to juz wczesniej wystalone i np:
1 - zatwierdzony 2 - oczekujacy 3 - wstrzymany 4 - anulowany
I teraz jak posortowac na liscie wynikow w ten sposob zeby bylo w kolejnosci:
3 - wstrzymany 4 - anulowany 2 - oczekujacy 1 - zatwierdzony
Posortowanie po numerze statysu ORDER BY status ASC niestety sie nie sprawdzi :( Jak posortowac wedlog ustalonej kolejnosci wartosci statusu tzn 3,4,2,1 ?
Grzegorz Danowski - 13-03-2006 11:23
Użytkownik "Pawel" <info@superlotto.pl> napisał w wiadomości news:baea0$440cef47$540a469c$2845@news.chello.pl.. . > Mam sobie tabelke w ktorej jednym z pol jest pole status(pole liczbowe) > Jest to juz wczesniej wystalone i np: > > 1 - zatwierdzony > 2 - oczekujacy > 3 - wstrzymany > 4 - anulowany > > I teraz jak posortowac na liscie wynikow w ten sposob zeby bylo w > kolejnosci: > > 3 - wstrzymany > 4 - anulowany > 2 - oczekujacy > 1 - zatwierdzony > > Posortowanie po numerze statysu ORDER BY status ASC niestety sie nie > sprawdzi :( > Jak posortowac wedlog ustalonej kolejnosci wartosci statusu tzn 3,4,2,1 ?
Może w tabeli ze statusem dodać dodatkowe pole z kolejnością sortowania? Ewentualnie, co będzie na pewno mniej wydajne, sortować wg jakiegoś warunku (case when). Pozdrawiam Grzegorz
max - 13-03-2006 11:23
Grzegorz Danowski napisał(a): > Użytkownik "Pawel" <info@superlotto.pl> napisał w wiadomości > news:baea0$440cef47$540a469c$2845@news.chello.pl.. . >> Mam sobie tabelke w ktorej jednym z pol jest pole status(pole liczbowe) >> Jest to juz wczesniej wystalone i np: >> >> 1 - zatwierdzony >> 2 - oczekujacy >> 3 - wstrzymany >> 4 - anulowany >> >> I teraz jak posortowac na liscie wynikow w ten sposob zeby bylo w >> kolejnosci: >> >> 3 - wstrzymany >> 4 - anulowany >> 2 - oczekujacy >> 1 - zatwierdzony >> >> Posortowanie po numerze statysu ORDER BY status ASC niestety sie nie >> sprawdzi :( >> Jak posortowac wedlog ustalonej kolejnosci wartosci statusu tzn 3,4,2,1 ? > > Może w tabeli ze statusem dodać dodatkowe pole z kolejnością sortowania? > Ewentualnie, co będzie na pewno mniej wydajne, sortować wg jakiegoś > warunku (case when). > Pozdrawiam > Grzegorz >
Dodajesz funckcje TWOJA_FUNKCJA(numeric) return numeric ktora bedzie zwracać dla 3 ->1 dla 4 ->2 dla 2 ->3 dla 1 ->4
I potem w zapytaniu
select status .... from... order by TWOJA_FUNKCJA(status)
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
=?ISO-8859-2?Q?Narz=EAdzie_do_budowania_zapyta=F1_SQL=2C?==?I SO-8859-2?Q?_PL/PgSQL=2C_PL/SQL=2C_T-SQL?=
[pgsql] Akcja w =?iso-8859-2?b?emFsZb9ub7ZjaQ==?= od liczby zmienionych =?iso-8859-1?q?rekord=F3w?=
[sql][pgsql] zapytanie sql
[pgsql] Wykonanie triggera po =?ISO-8859-2?Q?zako=F1czeniu_tra?==?ISO-8859-2?Q?nsakcji?=
[pgsql] =?ISO-8859-2?Q?Prawid=B3owe_post=EApowanie_w_przyp?==?ISO-8859-2?Q?adku_awarii?=
[PGSQL] Funkcje =?ISO-8859-2?Q?zwracaj=B1ce_=27rowset=27_i_?==?ISO-8859-2?Q?tabele_tymczasowe?=
[pgsql] 7.4 =?ISO-8859-2?Q?og=B3upia=B3_przy_zak=B3adaniu_?==?ISO-8859-2?Q?indeksu?=
[pgsql] Zmiana schematu do =?ISO-8859-2?Q?kt=F3rego_nalezy_o?==?ISO-8859-2?Q?biekt=2E?=
Która z baz: [PGSQL] czy [MySQL] będzie lepsza w takim zastosowaniu (masowe UPDATE)
=?ISO-8859-2?Q?=5BORACLE=2C_ORDER_BY=5D_Czy_indeksowane_?==?I SO-8859-2?Q?kolumny_przy=B6piesz=B1_sortowanie=3F?=
zanotowane.pldoc.pisz.plpdf.pisz.ploefg.opx.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 |
|