# SQL Daten sortieren und top 5 ausgeben



## SexyPenny90 (30. Apr 2012)

Hallo,

ich habe eine Datenbank namens Highscore, mit ID, Name, Punkte.
Diese Möchte ich nach Punkten sortienen, das hab ich so gemacht:

```
SELECT * FROM Highscore WHERE Punkte > 0 ORDER BY Punkte DESC
```

Nun möchte ich die TOP 5 auf der Oberfläche anzeigen. Bis jetzt sieht es so aus..


Die SQL Klasse:
[Java] SQL Verbindung - Pastebin.com

Die Methode um die es geht ist folgende:


```
private void lesen()
   {
     JLabel[][] lblHighscore = g.getHighscore();  
     sqlString = "SELECT * FROM Highscore WHERE Punkte > 0 ORDER BY Punkte DESC";
     try
     {
       sqlStatement = dbVerbindung.createStatement();
       resultSet = null;
       resultSet = sqlStatement.executeQuery(sqlString);
       if (resultSet == null)
       {
          System.out.println("kein Datensatz");
       }
       else
       {
          while (resultSet.next())
          {                
             String name = resultSet.getString(2);
             double Punkte = resultSet.getDouble(3);
             lblHighscore[2 Dimensionaler ARRAY].setText(name);
             lblHighscore[2 Dimensionaler ARRAY].setText(Punkte + "");
             }
          }
       }
     }
```

Ich weiß, wie ich die Spalten auswählen kann, aber wie kann ich das machen, dass ich nur die TOP 5 Zeilen hab.
Würde dann halt ne FOR-Schleife machen und eben somit die Zeile ändern...

Hoffe, dass miir jemand helfen kann

mfg Penny


----------



## IceStore (30. Apr 2012)

Also ich würde das mit LIMIT machen:


```
SELECT * FROM Highscore WHERE Punkte > 0 ORDER BY Punkte DESC LIMIT 0,5
```


----------



## Marcinek (30. Apr 2012)

Vorrausgesetzt es ist MySQL


----------



## IceStore (30. Apr 2012)

Ja, davon bin ich jetzt einfach mal ausgegangen xD.


----------



## eRaaaa (30. Apr 2012)

IceStore hat gesagt.:


> Ja, davon bin ich jetzt einfach mal ausgegangen xD.


->


> Driver={Microsoft Access Driver (*.mdb)



Wohl eher nicht 
Probiere mal 
SELECT TOP 5 ...

ALL, DISTINCT, DISTINCTROW, TOP Predicates - Access - Office.com


----------



## SexyPenny90 (30. Apr 2012)

Ich schreibe die TOP 5 in ein Array rein, jetzt ist ja die Frage, wie ich dann dementsprechend die Zeile auswählen kann.

Also das ist jetzt sortiert und jetzt soll die Höchstpunktzahl in Array[0] die zweite höchste in Array[1], .... bis eben fünf.

Deshalb bringt mir das bis jetzt ja nichts oder?


----------



## SexyPenny90 (30. Apr 2012)

eRaaaa hat gesagt.:


> ->
> 
> 
> Wohl eher nicht
> ...



Danke mit SELCET TOP 5 * hat es geklappt


----------



## Marcinek (30. Apr 2012)

Da du die erste auf der Welt bist, die sowas machen möcht, verstehe ich, dass man die Antwort nicht mittels google gefunden hat.


----------

