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

So sánh các hàng và cột của cùng một bảng

Làm thế nào về việc sử dụng một join ? Phần sau hiển thị tất cả các cặp khác nhau:

select tb.*, ts.*
from company tb join
     company ts
     on tb.company_name = ts.company_name and
        ts.address_type = 'shipping' and
        tb.address_type = 'billing' and
        ts.address <> tb.address;

Nếu bạn chỉ muốn các công ty khác biệt:

select company_name
from company t
group by company_name
having count(distinct case when t.address_type = 'billing' then address end) = 1 and
       count(distinct case when t.address_type = 'shipping' then address end) = 1 and
       (max(case when t.address_type = 'billing' then address end) <>
        max(case when t.address_type = 'shipping' then address end)
       );

Lưu ý:điều này cũng kiểm tra xem chỉ có một địa chỉ thanh toán và giao hàng riêng biệt.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mệnh đề IN cho Câu lệnh chuẩn bị sẵn của Oracle trong Python cx_Oracle

  2. Bảo mật cơ sở dữ liệu trong Oracle

  3. Oracle lấy khóa ngoại

  4. chia chuỗi thành nhiều hàng

  5. JDBC:lấy kiểu mảng từ siêu dữ liệu