Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

SQL:làm thế nào để sử dụng UNION và sắp xếp theo một lựa chọn cụ thể?

Bạn muốn làm điều này:

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

Cập nhật

Tôi nhận thấy rằng mặc dù bạn có hai bảng khác nhau, nhưng bạn kết hợp các ID, điều đó có nghĩa là, nếu bạn có 1 trong cả hai bảng, bạn chỉ nhận được một lần xuất hiện. Nếu đó là hành vi mong muốn, bạn nên tuân theo UNION . Nếu không, hãy đổi thành UNION ALL .

Vì vậy, tôi cũng nhận thấy rằng nếu bạn thay đổi mã mà tôi đã đề xuất, Bạn sẽ bắt đầu nhận được cả hai 12 (từ cả ab ). Trong trường hợp đó, bạn có thể muốn thay đổi mã được đề xuất thành:

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. Di chuyển Cơ sở dữ liệu Oracle từ AWS EC2 sang AWS RDS, Phần 2

  2. Oracle - Cách tạo tập lệnh từ nhà phát triển sql

  3. Làm thế nào để sử dụng Oracle ORDER BY và ROWNUM một cách chính xác?

  4. Tại sao Oracle 9i xử lý một chuỗi rỗng là NULL?

  5. Cách cài đặt máy khách SQL * PLUS trong Linux