La ruche DISTINCT() pour toutes les colonnes?

Je voulais savoir comment œuvres DISTINCTES, à l'aide d'un toy exemple ci-dessous. Supposons que vous ayez une table comme ça, avec 2 colonnes et 2 lignes de données:

SELECT * 
FROM table1;

colA   colB
A      B
A      C

Supposons que j'ai couru une requête SELECT DISTINCT:

SELECT DISTINCT colA, colB 
FROM table1;

Laquelle de ces résultats seraient renvoyées par la requête ci-dessus?

Résultat possibilité 1:

A      B
A      C

La pensée de cette possibilité, c'est que tandis que les valeurs ne sont pas distincts sur colA, l'ensemble de la ligne retournée est unique, ou, lorsque les deux colonnes sont pris en compte. Je suis incertain en raison de l'effet de la virgule entre colA et colB dans SELECT DISTINCT colA, colB et si elle sert à limiter le DISTINCT à colA.

Résultat possibilité 2:

A      B

Résultat possibilité 3:

A      C
  • Possibilité 1. Distinct s'applique à TOUTES les colonnes sélectionnées. Si vous venez de sélectionner colA puis vous obtenez 1 résultat record A: si vous venez de sélectionner district de la colonne B, puis vous obtenez B et C. Si vous avez eu une 3ème record A,B, alors vous feriez n'obtient que deux enregistrements lors de la sélection distincts colb ne le 3ème record serait une copie de la première. et vous obtenez seulement 2 dossiers lors de l'utilisation de distinct colA, colb ne le 3ème record est à nouveau une copie exacte de l'enregistrement 1.
InformationsquelleAutor user2205916 | 2017-03-14