![]() |
Datenbank: Oracle • Version: 10 • Zugriff über: -
Update Table rownum
Hallo liebe DP´ler,
ich habe eine einfache Tabelle in der ich eine Tabellenspalte updaten möchte. Es schien mir eigendlich eine simple Aufgabe, aber irgendwie will es nicht klappen. Die Tabelle hat 900 Einträge. Nun möchte ich in einer Spalte in einer bestimmten Reihenfolge die Werte 1 bis 11 eintragen. immer fortlaufend.
Code:
"view_of_table1" ist eine einfache View der "Table1" mit order by, damit rownum in der richtigen Reihenfolge angewandt wird.
// Versuch 1
UPDATE view_of_table1 SET PosInGRID = CASE mod(rownum, 11) WHEN 0 THEN 11 ELSE mod(rownum, 11) END CASE; // Versuch 2 UPDATE Table1 SET PosInGRID = (SELECT CASE mod(rownum, 11) WHEN 0 THEN 11 ELSE mod(rownum, 11) END CASE FROM view_of_table1 vT WHERE vT.id = table1.id); Beider Versuche funktionieren nicht. Könnt Ihr mir einen Tipp geben wie ich es hin bekomme |
AW: Update Table rownum
Die Antwort ist bei SO zu finden:
![]() Mit Google wärst Du selbst drauf gekommen... |
AW: Update Table rownum
Zitat:
Delphi-Quellcode:
procedure TDatenModul.ZiffernEinfuegen(Von, Bis : Integer);
var i : Integer begin i := Von; SortiereTabelleNach???; MyTable.First; while not MyTable.Eof DO begin MyTable.Edit; MyTable.FieldByName('Ziffernspalte').AsInteger := i; MyTable.Post; Inc(i); if i > Bis then i := Von; end; ShowMessage('Ziffern erfolgreich eingetragen ...'); end; |
AW: Update Table rownum
Danke für Eure Unterstützung.
Delphi konnte ich in diesem Fall nicht nutzen es sollte eine gespeicherte Prozedur in der Datenbank werden. Und Ja, wenn man Google richtig füttert bekommt man auch die richtigen Ergebnisse :oops: Und wenn mal jemand was ähnliches lieber hier sucht wie bei Google So klappt es wunderbar
Code:
CREATE OR REPLACE PROCEDURE setRowsCounter (newRowsInGrid number)
AS BEGIN UPDATE table1 SET PosInGrid = (Select RowNumber1 from (SELECT ID, CASE mod(rownum, newRowsInGrid) WHEN 0 THEN newRowsInGrid ELSE mod(rownum,newRowsInGrid) END as RowNumber1 FROM (SELECT ID, FROM table1 order BY ort)) dt WHERE dt.ID = table1.ID); END; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:06 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz