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

SQL:bagaimana cara menggunakan UNION dan memesan dengan pilihan tertentu?

Anda ingin melakukan ini:

select * from 
(
    SELECT id, 2 as ordered FROM a -- returns 1,4,2,3
    UNION
    SELECT id, 1 as ordered FROM b -- returns 2,1
)
order by ordered

Perbarui

Saya perhatikan bahwa meskipun Anda memiliki dua tabel yang berbeda, Anda menggabungkan ID, itu berarti, jika Anda memiliki 1 di kedua tabel, Anda hanya mendapatkan satu kemunculan. Jika itu perilaku yang diinginkan, Anda harus tetap berpegang pada UNION . Jika tidak, ubah ke UNION ALL .

Jadi saya juga memperhatikan bahwa jika Anda mengubah ke kode yang saya usulkan, Anda akan mulai mendapatkan keduanya 1 dan 2 (dari keduanya a dan b ). Dalam hal ini, Anda mungkin ingin mengubah kode yang diusulkan menjadi:

select distinct id from 
(
    SELECT id, 2 as ordered FROM a -- returns 1,4,2,3
    UNION
    SELECT id, 1 as ordered FROM b -- returns 2,1
)
order by ordered


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara membuat daftar semua tabel dalam skema di Oracle SQL?

  2. Apakah mungkin untuk membunuh satu kueri di Oracle tanpa mematikan sesi?

  3. Bagaimana saya bisa memilih catatan HANYA dari kemarin?

  4. Bagaimana cara memasukkan kolom pada posisi tertentu di Oracle tanpa menjatuhkan dan membuat ulang tabel?

  5. Data Warehousing ETL Data Profiling dengan Oracle Warehouse Builder