【发布时间】:2015-12-30 07:54:48
【问题描述】:
我正在使用 oracle PL/SQL。
我正在尝试将列值与LAG 函数进行比较。
以下是声明:
decode(LAG(col1,1) OVER (ORDER BY col3),col1,'No Change','Change_Occured') Changes
对于第一行,LAG 将始终与前一个空行进行比较。因此,对于我的查询,'Changes' 列的第一行始终将值显示为Change_Occured,而实际上没有发生任何变化。有没有办法处理这种情况?
假设这张表:
| col1 | col2 |
| 2 | 3 |
| 2 | 6 |
| 2 | 7 |
| 2 | 9 |
col1 的每一行都与之前的值进行比较,因此结果将是
| col1 | col2 | Changes |
| 2 | 3 | Change_occured |
| 2 | 9 | No Change |
| 2 | 5 | No Change |
| 2 | 8 | No Change |
那么我应该如何处理Changes列的第一行
【问题讨论】:
-
请提供示例数据并显示您的预期输出。
-
我已经添加了默认数据。
标签: sql oracle oracle11g lag window-functions