select
case when not exists (select 1 from tablename where col1 = t.col1 and col2 < t.col2) then t.col1 end col1,
t.col2
from tablename t
order by t.col1, t.col2
select (case when seqnum = 1 then col1 end) as col1, col2
from (select t.*,
row_number() over (partition by col1 order by col2) as seqnum
from t
) t
order by col1, seqnum;
2条答案
按热度按时间lsmepo6l1#
使用
CASE
带的表达式NOT EXISTS
:请看演示。
结果:
sr4lhrrt2#
您应该在应用程序中而不是在数据库中进行这种格式设置。为什么?您的结果实际上不是一个有效的表,因为第二行的定义依赖于第一行。在sql表中,每一行都应该独立存在。
但是,你可以这样做,如果你小心的话:
要使这一点始终如一地发挥作用,重要的是
order by
符合的定义seqnum
.