我知道在标准 SQL 中你可以这样做:
update top (100) table1 set field1 = 1
(参考:如何更新 sql server 中的前 100 条记录)
但这在 DB2 中是不允许的。谁能告诉我如何在 DB2 中完成相同的结果?谢谢!
我知道在标准 SQL 中你可以这样做:
update top (100) table1 set field1 = 1
(参考:如何更新 sql server 中的前 100 条记录)
但这在 DB2 中是不允许的。谁能告诉我如何在 DB2 中完成相同的结果?谢谢!
这是可行的,虽然你可能不会得到你期望的结果......
首先,永远记住SQL 本质上是UNORDERED。这意味着没有“顶”行之类的东西,除非您明确定义您的意思。否则,您的结果是“随机的”(排序)。
无论如何,这是可行的,假设您在桌子上有某种唯一键:
UPDATE table1 SET field1 = 1
WHERE table1Key IN (SELECT table1Key
FROM table1
WHERE field1 <> 1
ORDER BY field1
FETCH FIRST 100 ROWS ONLY)
为什么一次只想更新 100 行?你真正想解决什么样的问题?
你可以使用RRN
(如果你只是关心限制更新的数量)?
例如:
update mytable a set a.field = 'foo' where RRN(a) < 200