So aktualisieren Sie eine Spalte einer Tabelle auf einen Skalierungswert

8

Ich versuche, eine Spalte in meiner Tabelle zu aktualisieren, um die Werte 1 bis zu verwenden (eine maximale Zahl, die durch eine Anzahl von Datensätzen bestimmt wird).

Ich weiß nicht, ob ich das richtig erkläre, also habe ich ein SQLFiddle mit den Daten eingerichtet, die ich zu aktualisieren versuche.

SQL FIDDLE

Ich möchte die Versionsspalte auf 1 bis (die maximale Anzahl) setzen. Gibt es eine Möglichkeit, diese Abfrage neu zu schreiben, um die Versionsnummer zu skalieren? Wie in, ich möchte der erste Datensatz 1 verwenden, der zweite Datensatz, um 2 zu verwenden, und so weiter ...

%Vor%     
Zack 30.05.2013, 16:11
quelle

3 Antworten

4

Sie können es mit einem CTE und ohne Joins machen:

%Vor%

SQL Geige mit Demo .

    
Ian Preston 30.05.2013, 16:24
quelle
3

Von dem, was ich sagen kann, wollen Sie, dass jeder Datensatz von Documents eine version Nummer hat, was eine Zahl ist, die von 1 ..... N geht.

Sie könnten eine temporäre Tabelle und ROW_NUMBER Technik verwenden, um die inkrementelle version und dann UPDATE zurück in Ihre ursprüngliche Tabelle zu bekommen.

%Vor%

Wenn ich dich richtig verstehe ..

    
William 30.05.2013 16:21
quelle
1

Versuchen Sie Folgendes:

%Vor%

Sie können die Reihenfolge ändern (ORDER BY VersionID ASC) zu dem einen, den du brauchst.

    
leoinfo 30.05.2013 16:22
quelle

Tags und Links