如何更新DB2中的前100行

时间:2012-06-12 15:44:41

标签: sql db2 ibm-midrange

我知道在标准SQL中你可以这样做:

update top (100) table1 set field1 = 1

(参考:how can I Update top 100 records in sql server

但是DB2中不允许这样做。任何人都可以告诉我如何在DB2中完成相同的结果?谢谢!

2 个答案:

答案 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