sql >> データベース >  >> RDS >> Oracle

Oracle SQLでトップ1を選択し、日付順に並べ替える方法は?

    ... where rownum = 1 order by trans_date desc
    

    これにより、任意に選択された1つのレコードが選択されます(where rownum = 1 )次に、この1つのレコードを並べ替えます(order by trans_date desc

    Ivanが示すように、サブクエリを使用してレコードを並べ替え、最初のレコードをwhere rownum = 1で保持できます。 外側のクエリで。ただし、これは非常にOracle固有であり、サブクエリの結果が順序付けされていないと見なされるSQL標準に違反します(つまり、order by句はDBMSによって無視される可能性があります)。

    したがって、標準ソリューションを使用することをお勧めします。 Oracle 12c以降:

    select * 
    from table_name 
    order by trans_date desc
    fetch first 1 row only;
    

    古いバージョンの場合:

    select *
    from
    (
      select t.*, row_number() over (order by trans_date desc) as rn
      from table_name t
    )
    where rn = 1;
    


    1. C#からデータベースを一括挿入するための最良の方法は何ですか?

    2. OracleのNVL2機能

    3. SQLで外部キーを使用してテーブルを作成する方法

    4. コンテンツプロバイダーでのAndroid投影マップの目的は何ですか?