2011-10-29 29 views
2

這是一個SQL查詢問題。從對中檢索單個

如果你有一個這樣的表:

ID1   ID2 
1709 1689 
1689 1709 
1934 1501 
1501 1934 

而且要檢索這樣的:

ID1   ID2 
1709 1689 
1934 1501 

你會如何做呢?請注意(1709,1689)和(1689,1709)是相似的對,只是ID被移位。我的目的是從這些相似的元組中獲得單個元組。

回答

5

試試這個,這應該在任何方言的工作(不指定你用什麼樣的產品),它支持案例:

SELECT DISTINCT 
    CASE WHEN ID1 < ID2 THEN ID1 ELSE ID2 END AS ID1, 
    CASE WHEN ID1 < ID2 THEN ID2 ELSE ID1 END AS ID2 
    FROM Table 

該功能可將所有行先有較低的ID,然後使用DISTINCT刪除重複項。