집 >데이터 베이스 >MySQL 튜토리얼 >SQL Server에서 행 번호를 기반으로 내부 조인을 수행하는 방법은 무엇입니까?
SQL Server에서 행 번호에 대한 내부 조인을 수행하는 방법
SQL Server 프로그래밍 영역에서 수행 방법에 대한 질문 행 번호에 대한 내부 조인이 자주 발생합니다. 이 기사에서는 주제를 살펴보고 원하는 결과를 얻는 데 도움이 되는 솔루션을 제공합니다.
과제를 설명하기 위해 두 테이블 A와 B를 생각해 보세요. 각 테이블에는 위에서 아래로 정렬된 값 목록이 포함되어 있습니다.
목표는 두 테이블에 대해 내부 조인을 수행하여 행 번호를 기준으로 행을 일치시키는 것입니다. 기본적으로 SQL Server는 행 번호로 테이블을 조인하는 기본 방법을 제공하지 않습니다. 그러나 ROW_NUMBER() 함수를 사용하면 각 테이블의 각 행에 고유한 행 번호를 할당하는 가상 열을 생성할 수 있습니다.
SQL Server 2008에서 행 번호에 대해 내부 조인을 수행하려면 다음을 사용할 수 있습니다. 다음 단계:
-- Create a virtual column with row numbers for Table A SELECT val, ROW_NUMBER() OVER (ORDER BY val) AS row_num FROM A -- Create a virtual column with row numbers for Table B SELECT val, ROW_NUMBER() OVER (ORDER BY val) AS row_num FROM B -- Join the two tables on the row number virtual columns SELECT A.val, B.val FROM ( SELECT val, row_num FROM A ) AS A INNER JOIN ( SELECT val, row_num FROM B ) AS B ON A.row_num = B.row_num ORDER BY A.val, B.val
이 쿼리는 다음 출력을 반환합니다.
행 번호를 일치시켜 두 테이블의 내부 조인에 성공했습니다.
또는 특정 주문 기준 요구 사항이 없는 경우 테이블을 명시적으로 정렬하지 않고도 동일한 결과를 얻을 수 있습니다.
-- Create a virtual column with row numbers for Table A SELECT val, ROW_NUMBER() OVER () AS row_num FROM A -- Create a virtual column with row numbers for Table B SELECT val, ROW_NUMBER() OVER () AS row_num FROM B -- Join the two tables on the row number virtual columns SELECT A.val, B.val FROM ( SELECT val, row_num FROM A ) AS A INNER JOIN ( SELECT val, row_num FROM B ) AS B ON A.row_num = B.row_num ORDER BY A.row_num
이 쿼리는 나오는 순서대로 행을 반환합니다.
위 내용은 SQL Server에서 행 번호를 기반으로 내부 조인을 수행하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!