SELECT roads.geometry, names.NAME
FROM csf_md_rd_segs roads,
csf_md_rdseg_nm_asgns rdnm,
csf_md_names names
WHERE roads.road_segment_id = rdnm.road_segment_id
AND rdnm.name_type = 'O'
AND names.name_id = rdnm.name_id
AND names.name_type = 'O'
AND roads.functional_class = 2
UNION ALL
SELECT roads.geometry, NULL
FROM csf_md_rd_segs roads
WHERE roads.functional_class = 2
AND NOT EXISTS
(SELECT 1
FROM csf_md_rdseg_nm_asgns rdnm
WHERE rdnm.road_segment_id = roads.road_segment_id)