сравнение данных JDBC - PullRequest
0 голосов
/ 23 марта 2011

Я хочу сравнить содержимое 15 столбцов в две строки.Я использую DB2 9 с JDBC.Могу ли я использовать sql для получения результата типа «совпадать или не совпадать»


И как я могу получить столбцы, отличающиеся?

1 Ответ

1 голос
/ 23 марта 2011

Вы можете использовать оператор EXCEPT для этого.

В приведенном ниже примере я использую общие табличные выражения для извлечения отдельных строк (в данном случае предполагается, что id является первичным ключом.

with r1 as (select c1, c2, ..., c15 from t where id = 1),
     r2 as (select c1, c2, ..., c15 from t where id = 2)
select * from r1
except 
select * from r2

Если это возвращает 0 строк, то строки идентичны. Если он возвращает строку, то две строки различаются.

Если вы действительно хотите, чтобы результат был «МАТЧ» или «НЕ МАТЧ»:

with r1 as (select c1, c2, ..., c15 from t where id = 1),
     r2 as (select c1, c2, ..., c15 from t where id = 2),
     rs as (select * from r1 except select * from r2)
select
   case when count(*) = 0 then 'MATCH' 
        else 'NOT MATCH' 
        end as comparison 
from
   rs;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...