Šta je novo?

Numerička polja sortirana kao string?

dogriz

Čuven
Učlanjen(a)
07.07.2004
Poruke
403
Poena
630
Da li je moguće sortirati numerička polja u bazi kao string, npr:

123
1234
235
2365
459
...

ako su dati brojevi recimo integeri, sortiranje je od najmanjeg do najvećeg (123, 235, 459, 1234, 2365), što mi ne odgovara, treba da je sortirano baš kao gore. Radi kada konvertujem u string, ali to mi je presporo (velika količina podataka).

Delphi/Interbase6.02 (ili Firebird1.5)
 
A koji algoritam za sortiranje koristis? Jesi li koristio quicksort sa stringovima?
Tebi treba leksikografsko uredjenje, ne znam da li moze da se implementira neki algoritam za rad sa brojevima koji bi bio brzi od ovog sa stringovima.
 
trik: dopuni nulama sa desne strane do iste (najvece duzine) pa sortiraj numericki, i to je to !
 
zormanic je napisao(la):
trik: dopuni nulama sa desne strane do iste (najvece duzine) pa sortiraj numericki, i to je to !
To pali samo ukoliko brojevi koji se sortiraju nisu deljivi sa 10, a sumnjam da takvih nema :S:
 
sortiranje pali i ako ima takvih brojeva... samo shto posle ne pali brisanje tih nula :D
 
To sto si ti konvertovao u string je na strani klijenta/dataseta ili na strani servera u vidu stored procedure ili UDF-a koristeci CAST?
 
jox je napisao(la):
sortiranje pali i ako ima takvih brojeva... samo shto posle ne pali brisanje tih nula :D

niko ne govori o UPISU u bazu, dopisuje se samo radi sortiranja, neke dve temp varijeble koje zive do poredjenja, NEMA UPISA U BAZU.
 
zormanic je napisao(la):
niko ne govori o UPISU u bazu, dopisuje se samo radi sortiranja, neke dve temp varijeble koje zive do poredjenja, NEMA UPISA U BAZU.

gle gle... ko je pominjao upis?!?
 
A sta bi ti da brises POSLE ?

Da ne tupimo vise:

jedna procedura,
dopisivanje nula (uz pamcenje koliko se dopisuje)
dva puta sporije zbog dvostrukog poredjenje stringova
skidanje nula viska
kraj.
 
Poslednja izmena:
Redefinicija columna iz integera u varchar u bazi je mozda jos brze ;)
 
Nazad
Vrh Dno