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

Chứng minh tính tương đương của truy vấn SQL

Điều tốt nhất bạn có thể làm là so sánh 2 đầu ra truy vấn dựa trên một tập hợp đầu vào nhất định để tìm kiếm bất kỳ sự khác biệt nào. Để nói rằng chúng sẽ luôn trả về cùng một kết quả cho tất cả các đầu vào thực sự phụ thuộc vào dữ liệu.

Đối với Oracle, một trong những cách tiếp cận tốt nhất nếu không phải là tốt nhất (rất hiệu quả) là ở đây ( Ctrl + F So sánh nội dung của hai bảng):
http://www.oracle.com/technetwork/issue-archive/2005/05-jan/o15asktom-084959.html

Tổng hợp thành:

select c1,c2,c3, 
       count(src1) CNT1, 
       count(src2) CNT2
  from (select a.*, 
               1 src1, 
               to_number(null) src2 
          from a
        union all
        select b.*, 
               to_number(null) src1, 
               2 src2 
          from b
       )
group by c1,c2,c3
having count(src1) <> count(src2);


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. trả về tập kết quả từ hàm

  2. Cách lấy thông tin về lỗi biên dịch trong Oracle / TOAD

  3. Trả lại hàng có giá trị tối đa của một cột cho mỗi nhóm

  4. làm thế nào để cấp đặc quyền người dùng trên lược đồ cụ thể?

  5. Làm thế nào để ghi lại một cơ sở dữ liệu