MSSQL SELECT von mehreren Zeilen mit Autoincrement
-
Hi,
ich möchte bei einer SELECT-Anweisung, die mehrere Zeilen zurückliefern kann, eine Spalte mit einem Autoincrement hinzufügen. Also mein SELECT sieht so aus:
SELECT a,b,c FROM TblA; Result: a | b | c ---+---+--- 1 | 1 | 1 2 | 2 | 2 3 | 3 | 3 ...
Und for die Einträge möchte ich nun eine Spalte haben, die von einem Startwert für jeden Eintrag automatisch hochgezählt wird. Sinngemäß so:
DECLARE @x int; SET @x = 15; SELECT ID=@x++, a, b, c FROM TblA; Result: ID | a | b | c ----+---+---+--- 15 | 1 | 1 | 1 16 | 2 | 2 | 2 17 | 3 | 3 | 3 ...
Geht sowas?
-
Ich bin mir jetzt nicht ganz sicher, ob ich dich richtig verstehe, aber warum schiebst Du deine SELECT Anweisung nicht in einer Schleife. So mach ich das mit PHP immer.
-
Zunächst mal möchte ich abgerufene Daten so wenig wie Möglich in meiner Applikation nachbearbeiten, weil ich datensensitive Felder verwende (ADO unter VCL), die Daten so darstellen, wie sie vom Query kommen und Änderungen gleich in die Datenbank eintragen wollen. Zum anderen brauche ich die Funktion in einem SQL Trigger, wo ich weder PHP noch C++ hab
Aber die Lösung ist sogar recht einfach:
DECLARE @x int; SET @x = 15-1; SELECT ID=@x+(ROW_NUMBER() OVER (ORDER BY a)), a, b, c FROM TblA; Result: ID | a | b | c ----+---+---+--- 15 | 1 | 1 | 1 16 | 2 | 2 | 2 17 | 3 | 3 | 3 ...
-
heimchen schrieb:
wo ich weder PHP noch C++ hab
Achso. Dann ist das natürlich etwas anderes.
Wenn es so funktioniert, dann ist es ja alles super.