2012-11-01 76 views
2

需要一些Sql幫助?我的Sql尚未完成。 我有一個表SQL反向列值查詢

ColA ColB ColC 
A  B  101 
B  B  102 
C  B  102 
B  A  108 

我需要能夠識別COLC其中有在柱A和Col B中的同一條目(但相反)的行,即其中色柱B =列A.但不是值像3行爲,其中色柱B對應的值沒有匹配或連續兩個地方柱A =列B.

結果集是

Col A  Col B  Col C 
A   B   101 
B   A   108 

回答

6

你可以做一個自連接 - 即:參加表本身...

select t1.* , t1.ColC-t2.ColC 
from yourtable t1 
    inner join yourtable t2 
     on t1.colA = t2.colB 
     and t1.colB = t2.colA 
where t1.colA <> t1.colB 
+0

+1優雅的解決方案 –

+0

感謝Podiluska,現在我要研究如何獲得生成的值,並從另一箇中減去另一個匹配的相反對。 – icecurtain

+0

@icecurtain我在其中添加了區別。您可能需要圍繞它的「ABS」。 – podiluska