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

Làm thế nào để tạo hợp nhất hai tập dữ liệu với câu lệnh SQL được chọn (Oracle DBMS)?

Roman, bạn cần thực hiện kết hợp bên ngoài đầy đủ theo lựa chọn của mình để đối với bất kỳ id loại sự kiện nhất định nào (và tôi giả định rằng bạn sẽ có 0 hoặc 1 hàng trong cả bảng trước đây và tương lai cho bất kỳ id loại sự kiện cụ thể nào), bạn sẽ xuất ra một hàng duy nhất và các ngày rỗng và không rỗng thích hợp.

Câu trả lời đầu tiên sẽ không kết hợp ngày từ hai nguồn thành một hàng duy nhất, đó là điều tôi tin rằng bạn đã yêu cầu.

Câu trả lời thứ hai gần hơn, nhưng sẽ chỉ hoạt động đối với các hàng có cả ngày trong quá khứ và tương lai (tức là:một trong mỗi bảng) do liên kết bên trong.

Ví dụ:

insert into event_target (event_type_id, past_event_date, future_event_date)
select nvl(p.event_type_id, f.event_type_id), p.event_date, f.event_date
from
events_source_1 p full outer join
events_source_2 f on p.event_type_id = f.event_type_id

Lưu ý rằng hàm nvl dành cho Oracle và sẽ sử dụng hàm không null đầu tiên mà nó nhìn thấy. ISNULL có thể được sử dụng cho SQL Server.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Công cụ để làm việc với các thủ tục được lưu trữ trong Oracle, trong một nhóm?

  2. Làm thế nào để hiển thị tất cả các đặc quyền từ một người dùng trong oracle?

  3. Khung ghi nhật ký cho ứng dụng ASP.NET

  4. Tại sao DECODE của Oracle lại cho tôi một giá trị khác với NVL?

  5. Câu lệnh SQL tham gia Oracle và MS SQL Server