SELECT * FROM ( /* Hidden Views */ SELECT '0' AS show, vi.view_id, vi.view_name, usr.user_name AS owner_name, usr.user_email AS owner_email, vi.base_view, Count(vd.pkg_id) AS pkg_count, vi.owner_id FROM views vi, view_def vd, users usr WHERE (vi.owner_id = 0 OR vi.public_read='Y') AND usr.user_id = vi.owner_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, usr.user_name, usr.user_email, vi.base_view, vi.owner_id UNION /* Shown Views */ SELECT '1' AS show, vi.view_id, vi.view_name, usr.user_name AS owner_name, usr.user_email AS owner_email, vi.base_view, Count(vd.pkg_id) AS pkg_count, vi.owner_id FROM views vi, view_settings vis, view_def vd, users usr WHERE vi.view_id = vis.view_id AND usr.user_id = vi.owner_id AND vi.view_id = vd.view_id(+) AND vis.user_id = $USER_ID$ AND vi.public_read = 'Y' GROUP BY vi.view_id, vi.view_name, usr.user_name, usr.user_email, vi.base_view, vi.owner_id ) pview ORDER BY pview.view_name ASC