对于以下数据:
date|value|check
2009 | 5 | 1
2008 | 5 | 1
2007 | 5 | 1
2006 | 5 | 0
2005 | 5 | 0
2004 | 5 | 1
2003 | 5 | 1
2002 | 5 | 1
我需要选择从 2009 年开始的所有行,直到检查列中第一次出现 0:
date|value|check
2009 | 5 | 1
2008 | 5 | 1
2007 | 5 | 1
我试过滞后功能,但我只能在一个月前检查。
我正在研究 Oracle 10g。
更新:
一切似乎都运行良好,我的测试数据集太小,无法说明性能差异。
最佳答案
SELECT * FROM mytable where date > (
SELECT max(date) FROM mytable where check = 0
)
关于sql - 选择所有行直到第一次出现给定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/733979/