使用排序更新,将所有重复值更改为序列中的当前值

时间:2013-08-20 17:39:06

标签: sql db2

我有以下查询几乎是我想要的。

CREATE SEQUENCE acct_seq
 START WITH 1
 INCREMENT BY 1
 NO MAXVALUE
 NO CYCLE
 CACHE 24
;

SELECT accntnum  AS new_acct, old_acct
FROM FINAL TABLE (
UPDATE accounts INCLUDE(old_acct INT)
SET accntnum = NEXT VALUE FOR acct_seq, old_acct = accntnum
)
ORDER BY old_acct;

我使用它来清理数据库中的表,将所有帐号更改为序列中的数字,然后返回旧值和新值。我需要它将具有相同值的所有old_acct更改为序列中的相同数字,然后只返回old_acct / new_acct一次。目前,它正在将同一个acctnum的每次出现更改为序列中的不同数字。谢谢!

0 个答案:

没有答案