【发布时间】:2020-04-17 09:13:16
【问题描述】:
假设表的结构如下:
create table tab1
(
id int,
valid_from timestamp
)
我需要构建查询,以防对(id,valid_from)存在重复,例如
id valid_from
1 2000-01-01 12:00:00
1 2000-01-01 12:00:00
然后需要将一秒添加到valid_from 列的后续行。 例如如果有三个重复行,结果应该如下
id valid_from
1 2000-01-01 12:00:00
1 2000-01-01 12:00:01
1 2000-01-01 12:00:02
尝试运行递归 cte 查询,但由于在某些情况下存在大量重复值(对于 (id,valid_from) 的某些情况下,当前数据集约为 160),它确实很慢。 谢谢
【问题讨论】:
-
如果不查看您的实际表和索引定义、您的确切查询以及查询执行计划,我不相信您有可能给您任何有意义的建议。
-
如果你有
2000-01-01 12:00:00、2000-01-01 12:00:00、2000-01-01 12:00:01怎么办? -
第三个值与 pair(id,valid_from) 完全不同,不应该用它做任何事情。
标签: sql db2 recursive-query