Comment faire une jointure interne sur le numéro de ligne de sql server

SQL Server 2008

Deux tables:

Tableau a données suivantes:

RowA
RowB
RowC
RowD

Tableau B a données suivantes:

Row4
Row3
Row2
Row1

Je veux obtenir la sortie suivante:

RowA Row1
RowB Row2
RowC Row3
RowD Row4

La seule valeur commune entre les deux tables est le numéro de ligne

Je peux obtenir les données individuellement des cours:

SELECT val
FROM A
ORDER BY val

SELECT val
FROM B
ORDER BY val

Mais comment puis-je me joindre sur le numéro de ligne?

Et si je n'ai pas une commande, mais je veux juste les lignes dans l'ordre où ils sortent?

RowA Row4
RowB Row3
RowC Row2
RowD Row1

comme dans la jointure de

SELECT val
FROM A

SELECT val
FROM B
Rappelez-vous: tant que vous n'avez pas spécifier explicitement un ORDER BY, l'ordre dans lequel les lignes sont retournées sur la table(s) est garantie. Il pourrait être différent demain ... donc relier les deux lignes de deux tables différentes en fonction de uniquement sur leur "ordinal" position plus ou moins aléatoire de la séquence de sortie n'est pas reproductible et ne sont pas fiables. Si vos deux tables n'ont rien en commun - en fait, vous ne pouvez pas vraiment "se connecter" deux jeux de données à partir d'un tableau...
Je me rends compte que, mais dans mon cas, les deux tables sont à partir de fonctions et sera toujours dans le même ordre

OriginalL'auteur Graham | 2012-10-19