2011-10-27 2 views

Répondre

5
SELECT 
    CASE WHEN COUNT(col1) = COUNT(*) AND MIN(col1) = MAX(col1) THEN MIN(col1) END AS col1, 
    CASE WHEN COUNT(col2) = COUNT(*) AND MIN(col2) = MAX(col2) THEN MIN(col2) END AS col2, 
    ... 
FROM yourtable 

Vous devez permettre NULLs dans la colonne:

  • COUNT (*) les compte
  • COUNT (col1) ne les compte pas

C'est-à-dire, une colonne avec un mélange de As et NULLs n'est pas une valeur. MIN et MAX donneraient tous deux A car ils ignorent les valeurs NULL.

Edit:

  • enlevé DISTINCT pour obtenir compte le même pour vérifier NULL
  • ajouté MIN/check MAX (selon Mark Byers supprimé réponse) pour vérifier l'unicité
+0

+1 ceci est une bonne idée –

+0

S'il vous plaît lire éditer. –

+0

@MicheleVirgilio: fixe ... – gbn

Questions connexes