我有類似表: -重複值忽略列順序
+----+---+---+
| Id | A | B |
+----+---+---+
| 1 | 1 | 2 |
+----+---+---+
| 2 | 2 | 1 |
+----+---+---+
| 3 | 3 | 4 |
+----+---+---+
| 4 | 0 | 5 |
+----+---+---+
| 5 | 5 | 0 |
+----+---+---+
我想刪除所有重複值對的,無論哪個列包含的值,例如之後無論查詢可能是我想看到: -
+----+---+---+
| Id | A | B |
+----+---+---+
| 1 | 1 | 2 |
+----+---+---+
| 3 | 3 | 4 |
+----+---+---+
| 4 | 0 | 5 |
+----+---+---+
我想找到在Microsoft SQL Server的解決方案(在< = 2005的工作,雖然我很感興趣的任何解決方案,無論如何依靠> = 2008功能)。
此外,請注意,A和B將在1-100範圍內(但這並不是永遠保證的,它們是替代種子整數外鍵,但是外表最多可能會增長到幾百行) 。
我想知道我是否在這裏錯過了一些明顯的解決方案。已發生的所有的人似乎相當過度緊張,但我認爲他們很可能工作,如: -
- 有一個子查詢返回的位字段與對應的ID之一每一位,並使用這個值刪除重複。
- 不知何故,透視,刪除重複,然後unpivot。可能會很棘手。
在此先感謝!
這聽起來像一個造型問題太。如果你不在乎哪個值在哪個列中,那麼這兩列代表相同的數據,並且應該被標準化。 – JNK
@JNK - 完全同意,但是在這些情況下通常情況下,此時模型不能修改。 – ljs