Récemment, je suis tombé sur le quiz suivant. Imaginez que nous avons cette table la tâche consiste à écrire une requête SQL qui sélectionnera toutes les paires sans permettre des doublons. Les permutations sont comptées aussi ({rouge, noir} = {noire, rouge}, seulement une seule des paires est autorisée). P> p>
3 Réponses :
Essayez ceci
Black = Black serait faux, il serait donc sélectionné. La requête ci-dessus a l'air bien envers moi
Voici un lien intéressant sur Cross Joinages DatabaseJournal.com/sqletc/article.php/1438121/...
@glaz, car un point de jointure croisé signifie chaque élément de régler A et associez-le avec chaque élément de Set B ... Donc, vous obtenez une combinaison commandée possible. Le prédicat de la clause où élimine simplement celles où les paires d'éléments proviennent du même élément et l'un des doublons ... (A, B) et (B, A)
Select A.Colors, B.Colors From Colors A Cross Join Colors B Where A.Colors < B.Colors or B.colors < A.colors
Cela violerait la condition préalable des permutations: {rouge, noir} = {noir, rouge}, seulement une seule des paires est autorisée code>.
Essayez ceci:
Select * From colours A Cross Join colours B Where A.colours < B.colours or B.colours > A.colours and b.colours != b.colours and a.colours != a.colours
Vous recherchez un SQL ANSI ou peut-il être spécifique à la SGMS (Ex. SQL Server)?