【发布时间】:2013-05-16 04:44:30
【问题描述】:
我的表中有以下数据。
| Id | FeeModeId |Name | Amount|
---------------------------------------------
| 1 | NULL | NULL | 20 |
| 2 | 1 | Quarter-1 | 5000 |
| 3 | NULL | NULL | 2000 |
| 4 | 2 | Quarter-2 | 8000 |
| 5 | NULL | NULL | 5000 |
| 6 | NULL | NULL | 2000 |
| 7 | 3 | Quarter-3 | 6000 |
| 8 | NULL | NULL | 4000 |
如何编写这样的查询以获得以下输出...
| Id | FeeModeId |Name | Amount|
---------------------------------------------
| 1 | NULL | NULL | 20 |
| 2 | 1 | Quarter-1 | 5000 |
| 3 | 1 | Quarter-1 | 2000 |
| 4 | 2 | Quarter-2 | 8000 |
| 5 | 2 | Quarter-2 | 5000 |
| 6 | 2 | Quarter-2 | 2000 |
| 7 | 3 | Quarter-3 | 6000 |
| 8 | 3 | Quarter-3 | 4000 |
【问题讨论】:
-
什么版本的 SQL Server?
-
谢谢,它很有帮助,但在我的情况下,以前的值差异不是固定的,有些时间 2 记录,有些时间 3,它可以是任何范围。
-
看起来好像在 Oracle 中这个 could be done 和
LAST_VALUE ... IGNORE NULLS但 SQL Server 不支持IGNORE NULLS选项。 -
@Randy "...使用 LAG 函数..." 如果您能发布一个示例,那就太好了。
标签: sql sql-server tsql sql-server-2012