select 一行符合条件

select one row on condtion

这里需要稍微调整一下,不知道能不能实现。 在下面,如果没有 '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)

最好使用联合,例如:

最喜欢

这里需要稍微调整一下,不知道能不能实现。在下面,如果没有 '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