Oracle - Tauschen von werten?
-
Hi,
ich hab hier eine Oracle 9i DB und den SQL-Developer von Oracle. Ich möchte ganz gern Werte in einer speziellen Spalte in einer Tabelle tauschen die zu einer speziellen ID gehören. Ich hab mich immer damit beholfen erst die Daten umzubenennen und dann neu zugeordnet habe, weil ein direktes umbennen nicht möglich ist wegen der Gleichheit.
Meine Frage wäre jetzt kann man sowas auch in einem Rutsch machen oder irgendwie zusammenfassen, da ich das recht oft machen muß, bzw. die Anweisung als solches als Ganzes ablaufen lassen?
Beispiel:
Tab A ID, Wert, ... 01, 1 01, 2 02, 5 02, 18 Rauskommen soll: Tab A ID, Wert, ... 01, 2 01, 1 02, 18 02, 5
-
Äh.
Wie willst du die Zeilen denn auseinanderhalten wenn der Primary Key gleich ist?
Entweder hast du relationale Datenbanken nicht verstanden oder du hast in dem Beispiel eine wichtige Spalte unterschlagen.Die "Reihenfolge" in der Zeilen in einer Tabelle stehen ist auf jeden Fall vollkommen wurscht, bzw. besser gesagt nicht existent. Wenn du eine bestimmte Reihenfolge haben willst, dann brauchst du ein oder mehrere Felder (bzw. "Ausdrücke" - können auch gerne berechnete Werte sein) nach denen du sortieren kannst.
-
00Albert schrieb:
...
ich hab hier eine Oracle 9i DB und den SQL-Developer von Oracle. Ich möchte ganz gern Werte in einer speziellen Spalte in einer Tabelle tauschen die zu einer speziellen ID gehören. Ich hab mich immer damit beholfen erst die Daten umzubenennen und dann neu zugeordnet habe, weil ein direktes umbennen nicht möglich ist wegen der Gleichheit.Meine Frage wäre jetzt kann man sowas auch in einem Rutsch machen oder irgendwie zusammenfassen, da ich das recht oft machen muß, bzw. die Anweisung als solches als Ganzes ablaufen lassen?
Beispiel:
Tab A ID, Wert, ... 01, 1 01, 2 02, 5 02, 18 Rauskommen soll: Tab A ID, Wert, ... 01, 2 01, 1 02, 18 02, 5
Ergänzend zu dem, das hustbaer oben bereits geschrieben hat, kann ich mir nur vorstellen, dass
1. deine Spalte "ID" eben genau _keine_ ID ist und
2. die Kombination der Spalten "ID" und "Wert" ggf. einen Key (Unique?) bilden.Wenn das aber so sein sollte, dann ist das offenbar nur ein Sortierungsproblem.
Dann aber wiederum würde sich die Frage stellen, warum du eine andere Anordnung in deiner Tabelle haben willst. So etwas macht man üblicherweise nicht in einem halbwegs vernünftig entworfenen RDBMS.
-
"ID" ist sogar mit Sicherheit kein Primärschlüssel. Sonst würde er die Daten so gar nicht erst in die Tabelle kriegen, da das gleich eine Unique Constraint Verletzung geben würde. Ich schätze mal "ID" ist hier nur eine "Skizzierung" des Datenmodells. Als einzige Lösung würde mir für das Problem hier eine Funktion einfallen. Alles nach den gegebenen Kriterien selektieren und dann tauschen. Die Werte entsprechend in temporären Variablen speichern. Die ganze Aktion ist aber bereits erwähnt ziemlich fragwürdig.