表t1Ppm pph pcbrqA   000001   2008-1-1B   000001   2009-1-1select * from t1 where pph='000001';
会把2条记录都取出来,如果只想取出最大pcbrq那条记录,怎么写SQL

解决方案 »

  1.   

    SELECT *
      FROM (SELECT   *
                FROM t1
               WHERE pph = '000001'
            ORDER BY pcbrq)
     WHERE ROWNUM = 1
      

  2.   

    with temp as(
    select 'A' ppm,'000001' pph,to_date('2008-1-1','yyyy-mm-dd') pcbrq from dual
    union all
    select 'B' ppm,'000001' pph,to_date('2009-1-1','yyyy-mm-dd') pcbrq from dual
    )
    select * from (
    select ppm,pph,pcbrq,row_number() over(order by pcbrq desc) rn from temp where pph='000001' 
    ) where rn = 1