2011-10-29 1 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

CASEをサポートしている(あなたが使用しているものの製品を指定しない)任意の方言で働くべきか、これを試してみてください:

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を使用して重複を削除します。

関連する問題