sql >> Database >  >> RDS >> PostgreSQL

Voorwaardelijke bestelling door

SQL Fiddle

select 
    row_number() over() id, *
from (
    select
        r.routeid,
        p.pointid,
        label,
        type,
        labelstart,
        labelend
    from
        route r
        inner join
        point p on p.routeid = r.routeid
    where
        r.type = 'E' and p.label % 2 = 0
        or
        r.type = 'O' and p.label % 2 != 0
        or
        r.type = 'A'
    order by
        r.routeid, r.progres, r.id,
        case labelstart < labelend
            when true then label
            else label * - 1
        end
) s



  1. MySQL:selecteer alle datums tussen datumbereik en ontvang tabelgegevens die overeenkomen met datums

  2. Selecteer alleen rijen waarvan een kolom is gewijzigd ten opzichte van de rijen ervoor, met een unieke ID

  3. mysql hoe de 2e hoogste waarde te krijgen met groep door en in een linker join

  4. pdo voer de fout van give uit