答案 0 :(得分:0)
SQL表表示无序集。除非有列指定顺序,否则没有下一行或上一行。
有两种方法可以解释您的问题:
col1
的值比col5
多。在两种情况下,您都可以使用窗口功能。对于第一个:
select t.*
from (select t.*,
min(col5) over (partition by col1) as min_col5,
max(col5) over (partition by col1) as max_col5
from t
) t
where min_col5 <> max_col5;
请注意,这将返回所有带有col1
值的行。
第二次,您将使用lead()
/ lag()
:
select t.*
from (select t.*,
lag(col5) over (partition by col1 order by ?) as prev_col5,
lead(col5) over (partition by col1 order by ?) as next_col5
from t
) t
where col5 <> prev_col5 or col5 <> next_col5;
?
用于订购列。
请注意,这将返回突出显示的两行。