Wie kann ich ein update der top 100 Zeilen in DB2
Weiß ich, dass im SQL-standard können Sie dies tun:
update top (100) table1 set field1 = 1
(Referenz: wie kann ich ein Update der top 100 Datensätze in sql server)
Aber das ist nicht erlaubt in DB2. Kann jemand mir raten, wie zu erreichen das gleiche Ergebnis in DB2? Danke!
TOP x
ist nicht im SQL-standard, es ist eine einzigartige Erweiterung zu MS-SQL-Server (und wahrscheinlich Sybase).FETCH FIRST x ROWS
eingeführt wurde, in SQL:2008
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist dooable, obwohl Sie möglicherweise nicht die Ergebnisse, die Sie erwarten...
Zunächst immer daran denken Sie, dass SQL grundsätzlich UNGEORDNETE. Dies bedeutet, dass es keine solche Sache als die " top " - Zeilen, sofern Sie nicht explizit definieren, was du meinst. Ansonsten sind die Ergebnisse für die 'random' (sortof).
Unabhängig, dies ist dooable, vorausgesetzt, Sie haben eine Art von unique-key auf die Tabelle:
Warum möchten Sie nur eine update 100 Zeilen gleichzeitig? Welche Art von problem du eigentlich zu lösen versucht?
UPDATE (SELECT table1Key FROM table1 WHERE field1 <> 1 ORDER BY field1 FETCH FIRST 100 ROWS ONLY) SET field1 = 1
Konnte verwenden Sie die
RRN
(wenn Sie nur um die Begrenzung der Anzahl der updates)?Beispiel: