Ich benötigte einen Hinweis bezüglich einer SQL-Anweisung, die mit DB2 und Oracle ausgeführt werden muss.So fügen Sie einer vorhandenen Datenbanktabelle eine Spalte mit bestimmten Werten hinzu
Vor einiger Zeit wurde eine Datenbanktabelle ohne ID-Spalte eingerichtet. Das Hinzufügen der ID-Spalte ist nicht das Problem, aber ich muss unbedingt die Zeilennummer jeder Zeile ausfüllen. Ich fand heraus, dass rank() perfekt wäre, aber hier kann ich nicht für bestimmte Werte auswählen, weil ich dann immer den Wert '1' bekomme.
Bei der Einstellung ich eine Zwischentabelle, wie unten beschrieben, I-Ausgang alle Daten, die ich
WITH MY_TEMP_TABLE AS
(
SELECT RANK() OVER (ORDER BY CODE ASC) MY_ROW, CODE, LAND
FROM SECOND_TABLE
)
SELECT *
FROM SECOND_TABLE
INNER JOIN MY_TEMP_TABLE ON SECOND_TABLE.CODE=MY_TEMP_TABLE.CODE
brauchen Wie ist es möglich, die ID-Spalte in der Datenbanktabelle zu aktualisieren (hier: SECOND_TABLE) mit die Werte in MY_ROW?
Vielen Dank ...
, was meinen Sie, dass Sie immer den Wert 1 bekommen? Woher bekommst du den Wert 1? in meiner_Werbe? –
Ich denke, Sie wollen [ROWNUMBER()] (https://msdn.microsoft.com/en-us/library/ms186734.aspx) anstatt RANK(). – nscheaffer
SELECT ROWNUMBER() OVER (ORDER BY CODE ASC) My_Row, CODE, Land von BDV_KFWSTAAT
zurückkehrt mehr als 200 ergibt, von denen jeder eine unterschiedliche Anzahl
SELECT ROWNUMBER() OVER (ORDER BY CODE ASC) My_Row hat, CODE, LAND VON BDV_KFWSTAAT wo Code = 'DE'
gibt den Wert '1' nicht in Bezug auf, wo ich verwende. Auf diese Weise kann ich nicht zwischen den Ergebnissen unterscheiden. Das Problem ist das gleiche mit Rang() und Rownumber() – Oliver