Maison > base de données > tutoriel mysql > Comment joindre intérieurement deux tables SQL Server en fonction du numéro de ligne ?

Comment joindre intérieurement deux tables SQL Server en fonction du numéro de ligne ?

Mary-Kate Olsen
Libérer: 2025-01-05 01:36:39
original
892 Les gens l'ont consulté

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

Jointure interne sur numéro de ligne dans SQL Server

Objectif : Effectuer une jointure interne sur deux tables en utilisant leur ligne nombres.

Scénario :

Considérez deux tables, A et B, avec les données suivantes :

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

Le but est de joindre les tables en fonction de leurs numéros de ligne et de récupérer le résultat suivant :

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

Solution :

Pour effectuer une jointure interne sur les numéros de ligne, utilisez la fonction ROW_NUMBER() comme suit :

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;
Copier après la connexion

Cette requête crée une table temporaire pour chaque table d'entrée (A et B) et attribue des numéros de ligne à chaque ligne en fonction de la colonne val. Les tables sont ensuite jointes à l'aide de la colonne row_num et les résultats sont triés par la colonne val dans les deux tables.

Considérations supplémentaires :

  • Si aucune donnée spécifique le tri est souhaité, supprimez la clause ORDER BY de la fonction ROW_NUMBER() pour conserver la ligne d'origine commander.

Démo SQL Fiddle :

[Démo SQL Fiddle](https://www.sqlfiddle.com/#!18/69540/2 )

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal