Essentially I'm attempting to select the top read (based on `read_date`), and check if it has a `type in ( 'R','S','C','B','Q','F','I','A')` select * from ( select * from ( select * FROM table WHERE id = 369514 order by read_date desc ) where rownum = 1 ) where type IN ( 'R','S','C','B','Q','F','I','A') I only need to return a row if the top row has a type in the set, if not return nothing. The only way I seem to be able to is using all these nasty sub-queries.