Maison > base de données > tutoriel mysql > Comment puis-je joindre des tables SQL Server 2008 en fonction des numéros de ligne ?

Comment puis-je joindre des tables SQL Server 2008 en fonction des numéros de ligne ?

DDD
Libérer: 2024-12-26 02:29:10
original
714 Les gens l'ont consulté

How Can I Join SQL Server 2008 Tables Based on Row Numbers?

Joindre des tables sur des numéros de ligne dans SQL Server 2008

Pour effectuer une jointure interne sur des numéros de ligne dans SQL Server 2008, la méthode ROW_NUMBER() la fonction entre en jeu. Considérons l'exemple fourni :

Tableaux :

  • Tableau A : Contient des lignes : RowA, RowB, RowC, RowD
  • Tableau B : Contient les lignes : Row4, Row3, Row2, Row1

Sortie souhaitée :

  • RowA Row1
  • RowB Row2
  • RowC Row3
  • RangéeD Row4

Solution avec une clause Order By :

Pour joindre les tables en fonction des numéros de ligne, utilisez la fonction ROW_NUMBER() avec une clause ORDER BY :

select A.val,B.val
from(
    SELECT val,row_number() over (order by val) as row_num
    FROM A)A
join
    (SELECT val,row_number() over (order by val) as row_num
    FROM B)B
on  A.row_num=B.row_num
ORDER BY A.val,B.val
Copier après la connexion

Sortie :

Cette requête produira le sortie souhaitée :

  • RowA Row1
  • RowB Row2
  • RowC Row3
  • RowD Row4

Solution sans commande par Clause :

Si vous n'avez pas de clause order by, l'attribution des numéros de ligne avec la fonction ROW_NUMBER() triera toujours les valeurs dans un ordre arbitraire. Les lignes de la sortie apparaîtront dans le même ordre que dans les tables d'origine :

select A.val,B.val
from(
    SELECT val,row_number() over (order by (select null)) as row_num
    FROM A)A
join
    (SELECT val,row_number() over (order by (select null)) as row_num
    FROM B)B
on  A.row_num=B.row_num
ORDER BY A.val,B.val
Copier après la connexion

Sortie :

Encore une fois, cette requête produira le résultat souhaité, mais l'ordre des lignes peut différer :

  • RowA Rangée4
  • RangéeB Rangée3
  • RangéeC Rangée2
  • RangéeD Rangée1

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!

source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal