我有一个表temp(a int)。它具有一些存储在其中的值。我怎么知道所有这些值是否都在严格增加?
例如,temp可以包含按严格递增顺序排列的1,2,3-值,或不严格按递增方式包含1,1,2-的值。谢谢!
答案 0 :(得分:3)
SQL表表示无序集。因此,如果您的表只有一列,则没有答案-该问题没有意义,因为没有排序。
如果我假设您有一个订购栏,则可以简单地使用lag()
。对于表上的标志,这是逻辑:
select (count(*) > 0) as not_all_increasing
from (select t.*, lag(val) over (order by <orderingcol>) as prev_val
from t
) t
where prev_val > val;
如果要查看不增加的值,只需使用select t.*
。