AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Update Table rownum

Ein Thema von EarlyBird · begonnen am 8. Mai 2013 · letzter Beitrag vom 8. Mai 2013
Antwort Antwort
EarlyBird

Registriert seit: 29. Mär 2007
235 Beiträge
 
#1

Update Table rownum

  Alt 8. Mai 2013, 07:03
Datenbank: Oracle • Version: 10 • Zugriff über: -
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:
// 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);
"view_of_table1" ist eine einfache View der "Table1" mit order by, damit rownum in der richtigen Reihenfolge angewandt wird.
Beider Versuche funktionieren nicht.
Könnt Ihr mir einen Tipp geben wie ich es hin bekomme
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#2

AW: Update Table rownum

  Alt 8. Mai 2013, 07:09
Die Antwort ist bei SO zu finden:

http://stackoverflow.com/questions/6...rder-by-clause

Mit Google wärst Du selbst drauf gekommen...
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#3

AW: Update Table rownum

  Alt 8. Mai 2013, 08:24
Nun möchte ich in einer Spalte in einer bestimmten Reihenfolge die Werte 1 bis 11 eintragen.
Bei 900 Einträgen kannst du das auch locker mit Delphi realisieren:
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;
  Mit Zitat antworten Zitat
EarlyBird

Registriert seit: 29. Mär 2007
235 Beiträge
 
#4

AW: Update Table rownum

  Alt 8. Mai 2013, 15:39
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

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;
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:09 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz