[java + Firebird] ORDER BY ?

NudelMC

Well-known member
ID: 46722
L
16 Juni 2006
178
5
Hallo,

ich versuche gerade eine Highscore auszugeben, das klappt soweit ganz gut, allerdings bekomm ich sie einfach nicht gescheit sortiert.


Code:
// Jlabel können HTML O_o
    public void auslesen(){
    jlabel1.setText("<html><table width=400><tr><td colspan=2 align=center><font size=15 color=red>Highscore</font></td></tr><tr><td align=center><b>Name</b></td><td align=center><b>Punkte</b></td></tr>");
      if (connect()) {
      try{

                 Statement stmt = con.createStatement();
    ResultSet rSet = stmt
      .executeQuery("SELECT * FROM HIGHSCORE ORDER BY (PUNKTE) [COLOR="Red"]DESCENDING[/COLOR]");
    int i = 0;
    while (rSet.next() && i <10) {

          jlabel1.setText(jlabel1.getText() +"<tr><td align=center>" + rSet.getString("Name") + "</td><td align=center>" + rSet.getString("PUNKTE") + "</td></tr>");

          i+=1;
          }
          jlabel1.setText(jlabel1.getText() +"</table></html>");
           } catch (SQLException e) {
      e.printStackTrace();
  }
    }
    }

das "DESCENDING" scheint nicht zu klappen, wenn ichs aufsteigend mit ASCENDING sortieren lasse gehts. Aber ich hätts halt gerne absteigend, sonst macht ja die Highscore keinen Sinn :D

Jemand ne Idee?
Danke
Nudel
 
Hmm... so auf die Schnelle fällt mir da auch nichts ein. Du könntest höchstens den Umweg gehen und das Erebnis in eine TreeMap schreiben. Die sortiert dann. Ist zwar nicht die beste Lösung, aber es funktioniert. ^^
 
müsste es nicht heißen:
Code:
    ResultSet rSet = stmt
      .executeQuery("SELECT * FROM HIGHSCORE ORDER BY PUNKTE [COLOR="Red"]DESC[/COLOR]");

ich meine Firebird hatte da so seine Gemeinheiten.
Btw.: verwende doch einen StringBuilder um den String zusammenzusetzen, der Arbeitsspeicher wird es dir danken ;)

Edit: TreeMap? kostet nen bissel viel Rechenzeit. Ich würde nen Array empfehlen und dann mit )]Arrays.sort(Object[] a) das Array sortieren lassen, da wird dann MergeSort verwendet, was eindeutig ein schneller Sortieralgorithmus ist
 
ja klar geht das mit nem array, aber das muss doch auch sicher direkt in der abfrage gehen, alles andere wäre ja nur gepfuscht