我知道在标准SQL中你可以这样做:
update top (100) table1 set field1 = 1
(参考:how can I Update top 100 records in sql server)
但是DB2中不允许这样做。任何人都可以告诉我如何在DB2中完成相同的结果?谢谢!
答案 0 :(得分:18)
这是可行的,虽然你可能得不到你期望的结果......
首先,始终记住 SQL本质上是 UNORDERED 。这意味着除了明确定义你的意思之外,没有这样的东西和'top'行。否则,您的结果是“随机”(sortof)。
无论如何,这个是 dooable,假设你在桌面上有某种独特的键:
UPDATE table1 SET field1 = 1
WHERE table1Key IN (SELECT table1Key
FROM table1
WHERE field1 <> 1
ORDER BY field1
FETCH FIRST 100 ROWS ONLY)
为什么你只想一次更新100行?你真正试图解决什么问题?
答案 1 :(得分:2)
您可以使用RRN
(如果您只关注限制更新次数)吗?
例如:
update mytable a set a.field = 'foo' where RRN(a) < 200