• There's no need to join the group row to itself, so this is another possibility:


    SELECT c.*
    FROM #companies c
    LEFT OUTER JOIN #companies g
      ON c.CompanyStatus <> 'group'
       AND c.GroupNumber = g.GroupNumber
       AND g.CompanyStatus = 'group'
    ORDER BY ISNULL(g.CompanyName, c.CompanyName), c.CompanyName

    SQL DBA,SQL Server MVP(07, 08, 09) A socialist is someone who will give you the shirt off *someone else's* back.