Entwickler-Ecke
Datenbanken - Select - Wie Ergebnismenge nummerieren?
motion - Sa 26.01.08 16:22
Titel: Select - Wie Ergebnismenge nummerieren?
Ich brauche in der Ergebnismenge eines Selects, als erste Spalte eine Zeilennummerierung, also 1...rowcount.
Wie läßt sich sowas am einfachsten und besten realisieren?
SQL-Anweisung
1:
| Select "Nr",* from tabelle where option=1 |
und die Funktion "Nr" sollte den aufsteigenden Integer ergeben.
icho2099 - Sa 26.01.08 19:57
soweit ich SQL kenne, geht das nicht.
SELECT liefert nur die Spalten, nach denen du fragst.
Und du kannst nur nach Spalten fragen, die in der/den Tabellen enthalten sind.
Mit einer Delphi Komponente, die das Select ausführt und zusätzlich noch
eine eigene, kalkulierte Spalte hat, könntest du das evtl. erreichen.
OnCalcFields erstellen
FieldByName(myCalcField).AsInteger := Zeilenzähler;
Inc(Zeilenzähler)
Zeilenzähler auf Null setzen,
SELECT ausführen.
Aber: wenn du dann in der Ergebnismenge navigieren willst, musst du immer
bei FIRST anfangen und vorher Zeilenzähler auf NULL setzen.
Und nur vorwärts navigieren.
motion - So 27.01.08 00:23
Hallo,
leider muss der SQL direkt auf dem Server laufen (in einem Webshop); keine Möglichkeit das mit Delphi Code anzureichern.
Aber ich habe nach einiger Recherche diese Möglichkeit für MySql gefunden:
SQL-Anweisung
1: 2: 3: 4:
| set @cnt:=0; select @cnt:=(@cnt+1),a.* from db.artikel a; |
Funktioniert ganz gut ...
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!