SELECT * FROM ( /* Hidden Views */ SELECT '0' AS show, vi.view_id, vi.view_name, Count(vd.pkg_id) AS pkg_count, vi.public_read FROM views vi, view_def vd WHERE vi.owner_id = $USER_ID$ AND vi.view_id = vd.view_id(+) AND vi.view_id NOT IN (SELECT vis.view_id FROM view_settings vis WHERE vis.user_id = $USER_ID$) GROUP BY vi.view_id, vi.view_name, vi.public_read UNION /* Shown Views */ SELECT '1' AS show, vi.view_id, vi.view_name, Count(vd.pkg_id) AS pkg_count, vi.public_read FROM views vi, view_settings vis, view_def vd WHERE vi.view_id = vis.view_id AND vi.view_id = vd.view_id(+) AND vi.owner_id = $USER_ID$ GROUP BY vi.view_id, vi.view_name, vi.public_read ) pview ORDER BY pview.view_name ASC