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

时间:2012-10-18 17:24:49

标签: sql-server tsql

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

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

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

A     B
1     2
1     1
3     3
4     5

1 个答案:

答案 0 :(得分:1)

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)