Plsql 具有max和null值的Case语句

Plsql 具有max和null值的Case语句,plsql,plsqldeveloper,Plsql,Plsqldeveloper,我有一张桌子: 我需要在哪里选择拖车id 日期值为null且为空 从日期列开始的最大日期。 “日期”列中可以有两个以上的日期值 输出将选择c_id 3和4 如何在一个案例陈述中写下这一点?分析可能会有所帮助;按日期列降序排列值,并使用附加的NULL FIRST子句。例如: SQL> with test (a_id, c_id, c_date) as 2 (select 1, 2, date '2017-05-20' from dual union all 3 sele

我有一张桌子:

我需要在哪里选择拖车id

日期值为null且为空 从日期列开始的最大日期。 “日期”列中可以有两个以上的日期值

输出将选择c_id 3和4


如何在一个案例陈述中写下这一点?

分析可能会有所帮助;按日期列降序排列值,并使用附加的NULL FIRST子句。例如:

SQL> with test (a_id, c_id, c_date) as
  2    (select 1, 2, date '2017-05-20' from dual union all
  3     select 1, 3, date '2017-07-17' from dual union all
  4     select 1, 4, null              from dual
  5    )
  6  select a_id, c_id, c_date
  7  from (select a_id, c_id, c_date,
  8          row_number () over (partition by a_id
  9                              order by c_date desc nulls first) rn
 10        from test
 11       )
 12  where rn <= 2;

      A_ID       C_ID C_DATE
---------- ---------- ----------
         1          4
         1          3 2017-07-17

SQL>

您是否可以显示您已经尝试过的内容,以及您遇到错误或无法理解代码如何工作的点?至少存在一些伪代码标点符号是有原因的;我建议你用它。我试图修正格式;希望现在情况有所好转。不过,你说的两张身份证是什么意思?什么是拖车?二一行有什么不同的吗?