Oracle
 sql >> база данни >  >> RDS >> Oracle

Сравнете редове и колони на една и съща таблица

Какво ще кажете за използването на join ? Следното показва всички двойки, които са различни:

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;

Ако просто искате компаниите, които са различни:

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

Забележка:това също така проверява дали има само един отделен адрес за фактуриране и доставка.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Грешка при предварителен преглед на BI Publisher и Excel шаблон

  2. Генерирайте диапазон от дати с помощта на SQL

  3. DBCP Connection Pool loginTimeout

  4. Обектът на Oracle в рамката на VS entity не актуализира първичния ключ в кода

  5. Налагане на уникален/първичен ключ - индекс за премахване