sql - una - update db2 con 2 tablas
¿Cómo puedo actualizar las 100 mejores filas en DB2? (2)
Esto es factible, aunque es posible que no obtenga los resultados que espera ...
Primero, recuerde siempre que SQL está inherentemente UNORDERED . Esto significa que no existen las filas "superiores", a menos que defina explícitamente lo que quiere decir. De lo contrario, sus resultados son ''aleatorios'' (sortof).
De todos modos, esto es factible, suponiendo que tiene algún tipo de clave única en la mesa:
UPDATE table1 SET field1 = 1
WHERE table1Key IN (SELECT table1Key
FROM table1
WHERE field1 <> 1
ORDER BY field1
FETCH FIRST 100 ROWS ONLY)
¿Por qué solo quieres actualizar 100 filas a la vez? ¿Qué tipo de problema estás tratando de resolver?
Sé que en SQL estándar puedes hacer esto:
update top (100) table1 set field1 = 1
(referencia: cómo puedo actualizar los 100 mejores registros en el servidor SQL )
Pero esto no está permitido en DB2. ¿Alguien puede aconsejarme sobre cómo lograr el mismo resultado en DB2? ¡Gracias!
¿Podría usar el RRN
(si solo le preocupa limitar el número de actualizaciones)?
por ejemplo:
update mytable a set a.field = ''foo'' where RRN(a) < 200