Zeilen, die auf einem Spaltenwert in jeder Zeile basieren, werden dupliziert

8

Ich habe diese Tabelle mit den folgenden Daten

%Vor%

Basierend auf dem Wert in der Spalte Wiederholen für jede Zeile sollte die Zeile erneut wiederholt werden. Zum Beispiel für den Job 1, Wiederholungswert ist 2, also sollte der Job 1 noch zweimal wiederholt werden.

Die resultierende Tabelle sollte wie folgt sein

%Vor%

Kann mir bitte jemand mit dieser Frage helfen?

Ich benutze SQL Server

    
user1345260 05.06.2012, 18:00
quelle

4 Antworten

10

Dies unterstützt mehr als 7.400 Wiederholungen für jeden einzelnen Job (auf meinem System). Wenn Sie mehr benötigen, können Sie eine andere Systemtabelle oder eine Kreuzverbindung verwenden.

%Vor%     
Aaron Bertrand 05.06.2012, 18:28
quelle
5
%Vor%

Wenn Sie eine Tabelle haben, die garantiert mehr Datensätze enthält als der maximal mögliche Wert von repeat , können Sie @repeats loswerden und stattdessen diese Tabelle verwenden.

    
Quassnoi 05.06.2012 18:06
quelle
0

Ich bevorzuge den folgenden Ansatz, da er nicht auf externe Daten angewiesen ist, damit die Abfrage erfolgreich ist und ziemlich einfach ist. Ich habe den Code von Aaron Bertrand verwendet, um die Datentabelle zu initialisieren, aber meinen Ansatz, wie man Daten wiederholt - dieser Ansatz erfordert keine bestimmte Tabelle, die mehr Zeilen enthält als die erforderlichen Rekursionen / nicht von externen Daten abhängig.

%Vor%

Prost!

    
Curtis Watson 13.07.2017 18:12
quelle
-1

Sie können eine gespeicherte Prozedur schreiben, die diese Abfrage ausführt (als Cursor) und dann die neue temporäre Tabelle beliebig füllen

%Vor%

Funktioniert perfekt für mich.

    
Alexander Kind 05.06.2012 18:05
quelle

Tags und Links