2010-04-19 4 views
4

Considérons une table ou CTE structurés comme celui-ci:TSQL: trouver des entrées uniques dans une seule table

Name Num 
---- ---- 
Abc  12 
Abc  12 
XYZ  70 
XYZ  80 
XYZ  85 
Bar  50 
Bar  55 
Foo  44 
Foo  44 
Baz  88 

L'exigence est de déterminer le nom où plusieurs différents Nums existent.

Le ResultSet souhaité est

Name 
---- 
XYZ  
Bar  

Quelle déclaration TSQL utiliseriez-vous pour tirer cette ResultSet?

Mise à jour: en effet il pourrait y avoir 2+ entrées pour un nom donné.

+0

Est-il possible d'avoir plus de deux occurrencies XYZ dans le tableau? – systempuntoout

Répondre

9

pas NULLs dans Suppose colonne Num

select 
    Name 
from 
    MySetObject 
group by 
    name 
having 
    min(num) <> max(num) 
    -- also COUNT(DISTINCT Num) > 1 achieves the same 
+1

+1, allait juste poster la version 'COUNT (DISTINCT Num)' que vous venez d'éditer dans –

+0

@KM: désolé ..... – gbn

+0

;-(vous répéter, vous perdez.Je suis sûr que le plan d'exécution serait être presque identique –

Questions connexes