>데이터 베이스 >MySQL 튜토리얼 >행 번호를 기준으로 두 개의 SQL Server 테이블을 내부 조인하는 방법은 무엇입니까?

행 번호를 기준으로 두 개의 SQL Server 테이블을 내부 조인하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2025-01-05 01:36:39842검색

How to Inner Join Two SQL Server Tables Based on Row Number?

SQL Server의 행 번호에 대한 내부 조인

목표: 두 테이블의 행을 사용하여 내부 조인 수행

시나리오:

다음 데이터가 포함된 두 테이블 A와 B를 생각해 보세요.

Table A Table B
RowA Row4
RowB Row3
RowC Row2
RowD Row1

목표는 행 번호를 기반으로 테이블을 만들고 다음을 검색합니다. 출력:

Table A Table B
RowA Row1
RowB Row2
RowC Row3
RowD Row4

해결책:

행 번호에 대해 내부 조인을 수행하려면 다음과 같이 ROW_NUMBER() 함수를 활용하세요.

SELECT A.val, B.val
FROM (
    SELECT val, ROW_NUMBER() OVER (ORDER BY val) AS row_num
    FROM A
) AS A
JOIN (
    SELECT val, ROW_NUMBER() OVER (ORDER BY val) AS row_num
    FROM B
) AS B
ON A.row_num = B.row_num
ORDER BY A.val, B.val;

이 쿼리는 각 입력 테이블(A, B)에 대해 임시 테이블을 생성하고 val 열을 기준으로 각 행에 행 번호를 할당합니다. 그런 다음 테이블은 row_num 열을 사용하여 조인되고 결과는 두 테이블의 val 열을 기준으로 정렬됩니다.

추가 고려 사항:

  • 특별한 사항이 없는 경우 순서를 지정하려면 ROW_NUMBER() 함수에서 ORDER BY 절을 제거하여 원래 행을 유지하세요. 주문하세요.

SQL Fiddle 데모:

[SQL Fiddle 데모](https://www.sqlfiddle.com/#!18/69540/2 )

위 내용은 행 번호를 기준으로 두 개의 SQL Server 테이블을 내부 조인하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.