如何找到字段值为 x 且第二行为 x + 1 的两行

How to find two rows where a field value is x and 2nd row is x + 1

我有一个记录列表(交易)。

我希望能够只包含交易编号具有顺序值 +1 的行。甚至不知道从哪里开始让它只列出那些交易。我让它按顺序列出所有交易,但不只是隔离交易价值,加上他们的 + 1 交易。 (请注意,并非所有交易值都是连续的)。

例如,

如果字段 A 的值为 1,2,4,7,8,10 我希望脚本只列出 1、2、7、8 作为结果。

提前致谢。

你可以试试这样:

select * from table as t1
where exists (
    select * from table as t2
    where t2.A = t1.A-1 or t2.A = t1.A+1
)
order by t1.A

您想要至少包含两个连续值的组吗?

SELECT * FROM tab
QUALIFY 
   MIN(a) OVER (ORDER BY a ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING) = a - 1
OR MIN(a) OVER (ORDER BY a ROWS BETWEEN 1 FOLLOWING AND 1 FOLLOWING) = a + 1