Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Cara mengurutkan kolom yang sama baik dalam urutan asc dan urutan desc

Anda dapat melakukannya dengan row_number() dan bergabung sendiri:

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:

Anda juga dapat melakukan ini dengan rownum tetapi memerlukan select tambahan :

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Metode alternatif ke tabel temp global untuk Oracle Stored Procedure

  2. Mengkonversi dari tanggal ke zaman-Oracle

  3. TO_CHAR(angka) Fungsi mengembalikan ORA-01722:nomor tidak valid

  4. Menghasilkan tanggal antara dua tanggal

  5. Mengapa saya mendapatkan Pengecualian OutOfRange di Fungsi GetOrdinal bidang CLOB ini?