我有以下查询几乎可以按照我的意愿工作。
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 更改为序列中的不同数字。谢谢!