sql >> Databasteknik >  >> RDS >> Oracle

Konvertera Coldfusion-skript i Oracle-vy med CASE och iteration

Jag känner inte till ColdFusion, men jag tror att jag förstod logiken. Prioritet är aktuell> historia> annorlunda. Det är inte klart vilken rad som är korrekt när det finns två current rader eller bara different rader, så jag markerar rad med minsta valid_from i sådant fall. Om du inte bryr dig kan du utelämna den här parametern (ta bort unit_valid_from från row_number s order by klausul):

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



  1. Rails 3, ändrar fält i modell från sträng till datum och tid

  2. INT(3)-kolumnen klipper inte värdet till lämplig längd och tillåter att hela värdet infogas - MySQL

  3. Konstigt sorteringsproblem i PHP, mysql med utf8-data

  4. Hur SQLite Max() fungerar