从 DB 表中查找非连续的原始值 - SQL
Posted
技术标签:
【中文标题】从 DB 表中查找非连续的原始值 - SQL【英文标题】:Find non-consecutive raw values from DB table- SQL 【发布时间】:2017-02-14 10:24:51 【问题描述】:我正在寻找 Oracle 中的一些分析函数或一些可以从表中找到非连续原始值的查询。
示例示例
ORDER FLAG | ORDER FLAG
6 TRUE | 6 TRUE
2 FALSE | 5 TRUE
2 FALSE | 4 TRUE
1 FALSE | 3 TRUE
ORDER FLAG | ORDER FLAG
2 TRUE | 7 TRUE
2 TRUE | 7 TRUE
2 TRUE | 6 TRUE
1 TRUE | 1 FALSE
1 TRUE | 1 FALSE
因此,如果两个连续行之间存在间隙值,我想设置标志 'False'
- 并且一旦我们设置 'False'
就不需要在该列中进一步检查连续值。
(允许重复值 - 所以,2-2-2-1-1
很好;但 7-7-6-1-1
由于 6 和 1 之间的差距而失败)
基本上我想标记表格中的非连续值。
请告诉我是否有任何分析功能可以完成这项工作。
【问题讨论】:
【参考方案1】:您可以使用LAG analytic function 提供对先前行的访问,并检查结果是否等于当前行的值或值加1。
【讨论】:
您能举个例子吗?我检查了 docs.oracle- 但没有正确理解。 当然,Oracle-Base 在这里提供了一些很好的示例:oracle-base.com/articles/misc/lag-lead-analytic-functions以上是关于从 DB 表中查找非连续的原始值 - SQL的主要内容,如果未能解决你的问题,请参考以下文章