在condtion上选择一行

时间:2015-05-21 22:31:22

标签: sql crystal-reports-2010

我需要在这里做一个小调整,不确定是否可以完成。 在下文中,如果没有' 001'行,那么我只想要那个顺序的1行,但是当有001时我确实想要那个和下一个按照最早的时间。

CREATE VIEW rklib.clspaytp AS Select * from
 (
     Select x.*,
     row_number() over (partition by otord#
                        order by case ottrnc when '001' then 1 else 2 end
                        , ottrnd, ottrt
                        )
                     as RowN
    from rklib.clspaytpp x
) a
 where a.RowN in (1,2)

1 个答案:

答案 0 :(得分:0)

最好的方法是使用如下的联盟:

喜爱

我需要在这里做一个小调整,不确定是否可以完成。在下文中,如果没有' 001'行,那么我只想要那个顺序的1行,但是当有001时我确实想要那个和下一个按照最早的时间。

CREATE VIEW rklib.clspaytp AS 
    Select *
    from rklib.clspaytpp
    where ottrnc='001'
    union

    select *
    from 
    (
    select *
    from rklib.clspaytpp
    where ottrnc != '001'
    limit 1
    ) x