Sql server 如何使用T-SQL仅选择列B值不大于列A中下一个较大值的行?

Sql server 如何使用T-SQL仅选择列B值不大于列A中下一个较大值的行?,sql-server,tsql,Sql Server,Tsql,如何使用T-SQL仅选择列B值不大于列A中下一个较大值的行 例如,如果上表是输入,则输出应如下所示 A B 1 2 1 1 1 3 1 4 3 3 3 4 4 5 如何定义数据中的下一行?我看不出你可以通过。。。没有用于ORDER BY的ID或DateTimeStamp列A列中的下一个值引用的值大于当前行的值。A和B是可用于排序的表格字段。3 4和1 3不包括在内吗?@marc下一行从未提及。这个问题特别指出了下一个更大的值。本来

如何使用T-SQL仅选择列B值不大于列A中下一个较大值的行

例如,如果上表是输入,则输出应如下所示

A     B
1     2
1     1
1     3
1     4
3     3
3     4
4     5

如何定义数据中的下一行?我看不出你可以通过。。。没有用于ORDER BY的ID或DateTimeStamp列A列中的下一个值引用的值大于当前行的值。A和B是可用于排序的表格字段。3 4和1 3不包括在内吗?@marc下一行从未提及。这个问题特别指出了下一个更大的值。本来可以用更好的措辞,但没有提及row
A     B
1     2
1     1
3     3
4     5
select t1.A, t1.B
  from tbl t1
 where t1.B < isnull((select min(t2.A)
                        from tbl t2
                       where t2.A > t1.A), t1.B+1)