문제가 큰 쿼리를 가입 : 나는 쿼리 의 결과에서 중복 쌍을 제거해야내부가 자체
(설명 here 같은 문제를)
결과 (A가 있습니다 그렇다면, B), (B, A)는 (C, A)는
나는 (A, B)와 (C, A)
합병증에만 관심이 : 링크 된 질문과 달리 자체 조인을 수행하고 쉽게 검색 할 수있는 데이터를 테이블에서 사용할 수 없습니다.
SELECT T.C1, T.C2
((SELECT C1, C2 from a mind boggling number of joins and unions)) T1
을 다음과 같이
(SELECT C1, C2 from a mind boggling number of joins and unions)
그래서 내가
위에서 언급 한 바와 같이 내부 중복 쌍을 제거하기 위해 가입을 수행하고 싶은 그것을 임시 테이블을 만들 수있는 다음과 같은 상태에서 더 그런 시나리오에서 그렇게 할 방법이 있습니까? 아래의 쿼리는 구문 적으로 잘못되었지만 잘하면이 아이디어를 전달합니다.
SELECT A.C1, A.C2
((SELECT C1, C2 from a mind boggling number of joins and unions)) T1 A
INNER JOIN T1 B
ON A.C1 = B.C1 AND
A.C2 < B.C2
내가 여기 당신이뿐만 아니라 결과를 저장하고 혼자 cte1 사용하는 임시 테이블을 사용할 수 있습니다 CTE를
으로 원하는 것을 달성하기위한 하나의 방법은 SQL 서버 2012
구문에 따라 공통 테이블 식 (WITH)을 사용할 수 있지만 임시 테이블을 사용하면 성능이 향상 될 수 있습니다. – okaram