小编mja*_*von的帖子

使用oracle比较连续的行

我有一个看起来像这样的表:

| ID | FROM_DATE | TO_DATE |
------------------------------
| 1  |  1/1/2001 | 2/1/2001|
| 1  |  2/1/2001 | 3/1/2001|
| 1  |  2/1/2001 | 6/1/2001|
| 1  |  3/1/2001 | 4/1/2001|
| 2  |  1/1/2001 | 2/1/2001|
| 2  |  1/1/2001 | 6/1/2001|
| 2  |  2/1/2001 | 3/1/2001|
| 2  |  3/1/2001 | 4/1/2001|
Run Code Online (Sandbox Code Playgroud)

它已经被排序ID,From_Date,To_date.

我想要做的是删除from_dateto_date前一行更早的行,ID等于上一行的ID.所以在这个例子中,我只会删除第3行和第6行.

我知道我需要某种循环结构才能实现这一目标,但我不知道为什么我一直在这里看两行.我怎样才能在Oracle中实现这一目标?

编辑:使用'LAG'功能更快更容易,我最终也删除了第4行和第7行 - …

sql oracle loops date sql-delete

4
推荐指数
1
解决办法
938
查看次数

标签 统计

date ×1

loops ×1

oracle ×1

sql ×1

sql-delete ×1