假设我有下表:
Value Time
0 15/06/2012 8:03:43 PM
1 15/06/2012 8:03:43 PM *
1 15/06/2012 8:03:48 PM
1 15/06/2012 8:03:53 PM
1 15/06/2012 8:03:58 PM
2 15/06/2012 8:04:03 PM *
2 15/06/2012 8:04:08 PM
3 15/06/2012 8:04:13 PM *
3 15/06/2012 8:04:18 PM
3 15/06/2012 8:04:23 PM
2 15/06/2012 8:04:28 PM *
2 15/06/2012 8:04:33 PM
Run Code Online (Sandbox Code Playgroud)
如何选择已加星标的行,Value即已更改的位置?基本上我试图找到时间Value已经改变,所以我可以根据这些时间间隔做其他查询.解决方案不应该依赖于知道Value或Time提前.
在我看来,这应该不是很难(但显然对我来说很难!).
我目前正在使用SQL Server 2008,但如果新窗口/分析功能有用,我可以访问2012.
我尝试在这里调整解决方案http://blog.sqlauthority.com/2011/11/24/sql-server-solution-to-puzzle-simulate-lead-and-lag-without-using-sql-server-2012-解析函数/但我的查询在一小时后没有完成!我认为连接将行大小爆炸到无法管理的东西(或者我搞砸了).
我可以使用C#代码和多个db调用来解决这个问题,但它似乎可以在表值函数或SP中完成,这样可以更好.
此外,Value如果更容易,只有增加的解决方案才行.