Sqlite检查一行中的值是否在下一行的值之间,而不进行循环



假设我有这样的sql表:

id |  val_1 | val_2 | 
1  |  50    |  130  | -
2  |  70    |  110  | False
3  |  60    |  135  | True
4  |  40    |  70   | True
...

现在,我想检查(val_150在70 AND 110之间(OR(val_2130在70和110之间(是否为False,下一行是否为True,因为130在60和135之间,依此类推。这在窗口函数中可能吗?

您可以使用lag函数来获取前一行:

SELECT id, val_1, val_2,
LAG(val_1) OVER (ORDER BY id ASC) BETWEEN val_1 AND val_2 OR
LAG(val_2) OVER (ORDER BY id ASC) BETWEEN val_1 AND val_2
FROM   mytable

相关内容

  • 没有找到相关文章

最新更新