sql >> Base de Datos >  >> RDS >> Oracle

Convierta el script de Coldfusion en la vista de Oracle con CASE e iteración

No sé ColdFusion, pero creo que entendí la lógica. La prioridad es actual> historial> diferente. No está claro qué fila es correcta cuando hay dos current filas o solo different filas, entonces marco la fila con el mínimo valid_from En tal caso. Si no le importa, puede omitir este parámetro (eliminar unit_valid_from de row_number 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