Marc Reichelt: SQLite: laufenden Zähler in SELECT erzeugen (sinnvoll?)

Beitrag lesen

Hallo an alle,

in einer Android-App verwalte ich die Daten in einer SQLite-Datenbank. Die Abfragen sind normalerweise recht simpel, doch jetzt habe ich eine kleine Herausforderung der ich bislang so noch nicht begegnet bin: Ich benötige eine laufende Nummer. Als Beispiel habe ich hier eine Liste von Früchten (wie man sieht mit automatisch eingefügten IDs, die damit nicht zur Sortierung herhalten können):
id   | bezeichnung
-----+------------
2    | Apfel
5    | Birne
3    | Traube
42   | Orange

Die laufende Nummer soll immer nach der Sortierung "bezeichnung" erfolgen, also beispielsweise wie folgt:
id   | bezeichnung | laufende_nummer
-----+-------------+----------------
2    | Apfel       | 1
5    | Birne       | 2
42   | Orange      | 3
3    | Traube      | 4

Das soll auch der Fall bleiben wenn ich nur eine Teilmenge der Tabelle bekomme (Apfel und Birne nicht ausgewählt):
id   | bezeichnung | laufende_nummer
-----+-------------+----------------
42   | Orange      | 3
3    | Traube      | 4

Und die laufende Nummer soll sich automatisch mit ändern, wenn weitere Elemente in die Tabelle eingefügt werden, Beispiel an "Ananas" (Apfel und Birne sind weiterhin in der Tabelle, werden aber nicht ausgewählt):
id   | bezeichnung | laufende_nummer
-----+-------------+----------------
43   | Ananas      | 1
42   | Orange      | 4
3    | Traube      | 5

Wie kann ich das am Besten in SQLite bewerkstelligen? Ich könnte den Counter natürlich als neues Feld einfügen und mit jeder Änderung der Tabelle für jede Zeile neu setzen, aber eventuell gibt es da ja eine bessere Lösung. :-)

Vielen Dank & freundliche Grüße

Marc Reichelt || http://www.marcreichelt.de/

--
DPRINTK("Last time you were disconnected, how about now?");
        linux-2.6.6/drivers/net/tokenring/ibmtr.c
Selfcode: ie:{ fl:| br:> va:} ls:< fo:} rl:( n4:( ss:) de:> js:| ch:? sh:| mo:) zu:)