... 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;