Wie durchlaufe ich eine Reihe von Datensätzen aus einer Auswahl?
Nehmen wir zum Beispiel an, ich habe ein paar Datensätze, die ich durchlaufen und mit jedem Datensatz etwas anfangen möchte. Hier ist eine primitive Version meiner Auswahl:
select top 1000 * from dbo.table
where StatusID = 7
Vielen Dank
sql
sql-server
Funky
quelle
quelle
Antworten:
Mit T-SQL und Cursorn wie folgt:
quelle
Dies ist, was ich getan habe, wenn Sie etwas iteratives tun müssen ... aber es wäre ratsam, zuerst nach festgelegten Operationen zu suchen.
quelle
Kleine Änderung an Sam Yis Antwort (zur besseren Lesbarkeit):
quelle
select @TableID = (...)
Anweisung enthalten.Mit dem Cursor können Sie Datensätze einfach einzeln durchlaufen und Datensätze separat oder als einzelne Nachricht mit allen Datensätzen drucken.
quelle
Nur ein weiterer Ansatz, wenn Sie temporäre Tabellen verwenden können. Ich habe dies persönlich getestet und es wird keine Ausnahme verursachen (auch wenn temporäre Tabellen keine Daten enthalten.)
quelle
COUNT(*)
und die zweite vonCOUNT(*)
1 geht , ist seltsam.WHILE (@COUTNER <= @ROWID)
und müssen nicht@ROWID
in jeder Iteration dekrementieren . Übrigens, was passiert, wennROWID
s in Ihrer Tabelle nicht fortlaufend sind (einige Zeilen wurden zuvor gelöscht).Sie können Ihre Daten ordnen und eine ROW_NUMBER hinzufügen und bis Null zählen, während Sie Ihren Datensatz iterieren.
quelle
Auf diese Weise können wir in Tabellendaten iterieren.
STRINGTOTABLE ist eine benutzerdefinierte Funktion, die durch Kommas getrennte Daten analysiert und die Tabelle zurückgibt . Vielen Dank
quelle
Ich denke, dies ist der einfache Weg, um ein Element zu iterieren.
quelle