제가 상기 데이터 셋이여러 열을 기반으로 행 일치 찾을
PersonID | Name | ItemID1 | ItemID2 |ItemID3 | ItemID4
1 | kk | 1 | 2 |NULL | NULL
2 | KK | 1 | NULL | 2 | NULL
같은 테이블 구조를 갖는다 (컬럼의 순서는 중요하지 않음)가 동일한 이름과 같은있을 경우, 두 사람이 동일한 항목 집합 (항목 순서가 여기에 일치하지 않음) 기본적으로 행 1에서 사람 이름은 KK이고 항목 목록은 1과 2이며, 행 2와 동일합니다.이 2 개가 일치하는 행입니다.
이러한 일치하는 행을 찾기 위해 SQL 쿼리를 작성해야합니까?
좋은 성능을 제공하지 않습니다이 날의 목록을 제공합니다 personid/name 및 itemid를 기반으로 중복됩니다. 나는 실제로 모든 4 열 값의 체크섬을 보유 할 계산 된 열을 생각하고 있습니다. 그리고 두 개의 레코드의 체크섬을 비교하여 이들이 중복되는지 확인해야합니다 ...하지만 나는 추측합니다 nulls는 문제를 만들고 있습니다 ... select * from TABLE group from name, computedcolumn –
그럴 경우 왜 ISNULL() 함수를 사용하고 null을 0으로 변환하지 않습니까? 예 ISNULL (ItemIDx, 0) –
personid와 name을 통해 분할 된 Row_Number()를 사용하여 중복을 해결할 수 있습니다 ... 기본적으로 w 키를 만듭니다. 여기에는 그 (것)들이 없다. –