sql >> Database teknologi >  >> RDS >> Oracle

Sådan sorteres en samme kolonne både i asc-rækkefølge og desc-rækkefølge

Du kan gøre dette med row_number() og selv deltage:

select e1.empid as empid_1, e2.empid as empid_2
from (select e.*, row_number() over (order by emp_id) as seqnum
      from emp e
     ) e1 join
     (select e.*, row_number() over (order by emp_id desc) as seqnum
      from emp e
     ) e2
     on e1.seqnum = e2.seqnum;

EDIT:

Du kan også gøre dette med rownum men det kræver en ekstra select :

select e1.empid as empid_1, e2.empid as empid_2
from (select e.*, rownum as seqnum
      from (select e.* from emp e order by empid asc) e
     ) e1 join
     (select e.*, rownum as seqnum
      from (select e.* from emp e order by empid desc) e
     ) e2
     on e1.seqnum = e2.seqnum;


  1. Kør en PostgreSQL .sql-fil ved hjælp af kommandolinjeargumenter

  2. Hvordan forespørger man indlejrede arrays i en postgres json-kolonne?

  3. PostgreSQL Regex-ordgrænser?

  4. SQL-antal efter gruppe