当前位置:  开发笔记 > 编程语言 > 正文

如何根据特定条件查找表中的下一个值

如何解决《如何根据特定条件查找表中的下一个值》经验,为你挑选了0个好方法。

我有一张桌子:

ID | Name | Date
 1 | ABC  | 2015-01-01
 2 | XYZ  | 2015-01-02
 3 | ABC  | 2015-01-03
 4 | ABC  | 2015-01-04

我想查询此表,结果如下:

ID | Name | Date       | NextDate
 1 | ABC  | 2015-01-01 | 2015-01-03
 2 | XYZ  | 2015-01-02 | null
 3 | ABC  | 2015-01-03 | 2015-01-04
 4 | ABC  | 2015-01-04 | null

一个解决方案是:

select t1.*,
  (select min(t2.Date) from TAB t2 where t2.ID > t1.ID t2.Name = t1.Name) NextDate
from TAB t1

但是这很慢,因为我们正在对每一行进行聚合.有没有比这更有效的替代解决方案?

推荐阅读
携手相约幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有