Como usar UNION e CASE?

Pessoal alguem ai mim ajuda aqui, preciso saber como usar UNION e CASE em umas questoes de banco de dados 2…

Tenho essa questao aqui mais preciso entende-la , pois nao foi eu que fiz…

/*Recupere todos os campeonatos onde o "Flamengo" e o "Fluminense" se 
enfrentaram. A resposta deve conter o campeonato, a data onde o 
jogo ocorreu, o nome e a classificação da equipe vencedora.*/

select c.dsc_camp as [Nome do Campeonato]
      , j.data as [Data]
      ,
         case j.resultado
           when '1' then t1.nom_time
           when '2' then t2.nom_time
           when '0' then 'Empate' 
           else 'Não realizado'
         end as Vencedor,
         case j.resultado
           when '1' then p1.classif
           when '2' then p2.classif
           else null
         end as Classificação
    
    from campeonatos c
         , jogos j
         , times t1
         , participacoes p1
         ,times t2
         , participacoes p2
    
    where ( c.cod_camp = j.cod_camp  ) and

          ( j.cod_time1 = t1.cod_time  and
            t1.cod_time = p1.cod_time  and
            p1.cod_camp = c.cod_camp 
          ) and
          ( j.cod_time2 = t2.cod_time  and
            t2.cod_time = p2.cod_time  and
            p2.cod_camp = c.cod_camp 
          ) and
          ( ( t1.nom_time = 'FLAMENGO' and
              t1.uf_time  = 'RJ' 
             ) or
            ( t1.nom_time = 'FLUMINENSE' and
              t1.uf_time  = 'RJ' 
            ) 
          ) and
          ( ( t2.nom_time = 'FLAMENGO' and
              t2.uf_time  = 'RJ' 
            ) or
            ( t2.nom_time = 'FLUMINENSE' and
              t2.uf_time  = 'RJ' 
            )
          )
    order by c.dsc_camp, j.data