Sélectionnez la première ligne dans une jointure de deux tables en une seule instruction

J'ai besoin de sélectionner uniquement la première ligne à partir d'une requête qui joint les tableaux A et B. Sur la table B existe plusieurs enregistrements avec le même nom. Il n'y a pas d'identificateurs dans l'une des deux tables. Je ne peux pas changer le système, soit parce que je ne possède pas le DB.

TABLE A
NAME

TABLE B
NAME
DATA1
DATA2

Select Distinct A.NAME,B.DATA1,B.DATA2 
From A 
Inner Join B on A.NAME = B.NAME

Cela me donne

NAME       DATA1    DATA2
sameName   1        2
sameName   1        3
otherName  5        7
otherName  8        9

mais j'ai besoin de récupérer une seule ligne par nom

NAME       DATA1    DATA2
sameName   1        2
otherName  5        7

J'ai été en mesure de le faire en ajoutant le résultat dans une table temporaire avec une colonne d'identité, puis sélectionnez le code minimal pour chaque nom.

Le problème, c'est que j'ai besoin de faire cela en une seule instruction.

OriginalL'auteur Oscar Cabrero | 2009-04-21