sql >> Database teknologi >  >> RDS >> PostgreSQL

Betinget bestilling af

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. SQL Server 2016:OLTP-forbedringer i hukommelsen

  2. Hvordan kan jeg runde et tal ned til nærmeste 10?

  3. Hvordan kan jeg rydde skærmen i MySQL-konsollen?

  4. Hvordan kan jeg slippe af med uønskede tomme XML-tags?