2011-03-23 100 views
0

我想比較兩列中15列的內容。 我正在使用db2 9和jdbc。 我可以使用SQL得到的結果,如「匹配或不匹配」jdbc數據比較


,我怎麼能得到列不同?

+0

你要知道,如果兩個r所有15列的行數都相同? – Thilo 2011-03-23 03:55:54

+0

@Thilo你是對的 – kuangfuking 2011-03-24 03:24:44

回答

1

您可以使用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; 
+0

@lan Bjorhovde我可以在JDBC中使用這樣的sql嗎? – kuangfuking 2011-03-24 03:25:50

+0

@kuangfuking:如果DB2對SQL很好,它應該可以工作。 JDBC只會傳遞SQL。 – Thilo 2011-03-24 03:57:24

+0

@kuangfuking:是的。 – 2011-03-25 00:43:43