2016-09-14 2 views
0

Мы используем базу данных SAP HANA.Сравнение содержимого таблицы базы данных

Как я могу сравнить, если две таблицы имеют одинаковый контент?

Я уже сделал сравнение первичного ключа с помощью SQL:

select COUNT (*) from Schema.table1; 
select COUNT (*) from Schema.table2; 
select COUNT (*) 
    from Schema.table1 p 
    join schema.table2 r 
    on p.keyPart1 = r.keyPart1 
    and p.keyPart2 = r.keyPart2 
    and p.keyPart3 = r.keypart3; 

Так что я по сравнению строк обеих таблиц и объединения. Все подсчеты строк одинаковы.

Но я до сих пор не знаю, соответствует ли содержание всех строк одинаковым. Может быть, одна или несколько ячеек неквантовой колонки отклоняются.

Я думал о том, чтобы поместить все столбцы в заявление о соединении. Но это было не так.

ответ

1

Вы можете использовать except

SELECT * FROM A 
EXCEPT 
SELECT * FROM B; 

SELECT * FROM B 
EXCEPT 
SELECT * FROM A; 
+0

Это семантически правильный ответ, основанный на множественных операций. Однако для практических целей - особенно в больших наборах данных - это очень ресурсоемкий способ сделать это. Кроме того, когда вы запускаете эти запросы и фактически находите несоответствующие записи, вы не знаете, из какой таблицы они приходят. SAP Solution Manager (дополнительный продукт SAP) предоставляет функцию, которая выполняет высокоэффективное блочное сравнение набора записей и позволяет понять, откуда возникла разница. –

Смежные вопросы