我有以下查询几乎是我想要的。
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的每次出现更改为序列中的不同数字。谢谢!