Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Converter script Coldfusion na visualização Oracle com CASE e iteração


Não conheço o ColdFusion, mas acho que entendi a lógica. A prioridade é atual> histórico> diferente. Não está claro qual linha está correta quando há dois current linhas ou apenas different linhas, então eu marco a linha com o mínimo valid_from em tal caso. Se não se importar Poderáomitir este parâmetro (remover unit_valid_from de row_number 's order by cláusula):
select units.*, 
       case when 1 = 
           row_number() over (
               partition by org_id 
               order by case origin when 'current' then 1 when 'history' then 2 else 3 end, 
                        unit_valid_from ) then 1 else 0 end as is_correct_version
  from units