我有一个看起来像这样的表:
| 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_date比to_date前一行更早的行,ID等于上一行的ID.所以在这个例子中,我只会删除第3行和第6行.
我知道我需要某种循环结构才能实现这一目标,但我不知道为什么我一直在这里看两行.我怎样才能在Oracle中实现这一目标?
编辑:使用'LAG'功能更快更容易,我最终也删除了第4行和第7行 - …