Dúvida: Consulta que mostre os resultados agrupados mas sem repetir coluna

Tem como usar o select ou outro comando para retornar um valor que me mostre os resultados em grupos?

Exemplo: tenho a seguinte tbl_PaisCidade

Se eu executar um

O resultado é esse:

País, Cidade
Argentina, Buenos Aires
Argentina, Buenos Aires
Argentina, Buenos Aires
Brasil, Campinas
Brasil, Resende
Brasil, Rio de Janeiro
Brasil, Rio de Janeiro
Brasil, Rio de Janeiro
Brasil, São Paulo
Brasil, São Paulo
Brasil, São Paulo
Brasil, São Paulo

Eu quero que o nome do País apareça somente uma vez e em seguida que seja listada todas as cidades deste País.

Ex:

Argentina,
Buenos Aires
Buenos Aires
Buenos Aires

Brazil,
Campinas
Resende
Rio de Janeiro
Rio de Janeiro
Rio de Janeiro
São Paulo
São Paulo
São Paulo
São Paulo

Tem como fazer isso usando SQL? Se não, qual a lógica para fazer isso por exemplo PHP?

select 
  c.local
from 
(
    select distinct 
        1 tipo
      , (e.pais || e.cidade) campo
      , e.pais local
    from 
      tbl_PaisCidade e
    union
    select distinct 
        2 tipo
      , (e.pais || e.cidade) campo
      , e.cidade local
    from 
      tbl_PaisCidade e
) c
order by 
    c.campo
  , c.tipo