sql >> Databáze >  >> RDS >> Oracle

Porovnejte řádky a sloupce stejné tabulky

Co takhle použít join ? Následující ukazuje všechny páry, které se liší:

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;

Pokud chcete pouze společnosti, které se liší:

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)
       );

Poznámka:Toto také zkontroluje, že existuje pouze jedna odlišná fakturační a dodací adresa.



  1. Jak napsat dotaz šablony hibernace z dotazu SQL?

  2. Použití PHP a MySQL k naplnění rozevíracího seznamu

  3. Více dotazů v jednom api

  4. Jak odstranit jedinečný klíč z tabulky mysql