sélectionnez une colonne de type xml dans la requête select avec le groupe par SQL Server 2008

Je suis en train d'écrire une requête select dans lequel je suis aller chercher sur plusieurs colonnes (en se joignant à 3-4 tables).
J'ai utiliser la clause group by pour le groupe de mes résultats.

Requête

    select ci.Candidate_Id, ci.FirstName, ci.DetailXML
from Candidate_Instance ci 
where ci.Candidate_Instance_Id=2
group by 
ci.Candidate_Id, ci.FirstName, ci.DetailXML

L'une des tables ont une colonne de type de données XML. Quand j'ajoute de la colonne dans la liste de sélection, j'ai cette erreur -

Colonne de la table.myXML' est pas valide dans la liste de sélection, car il n'est pas contenue dans une fonction d'agrégation ou de la clause GROUP BY.

et quand j'ajoute de la colonne dans la clause group by, j'ai cette erreur -

Le type de données XML ne peut pas être comparé ni triés, sauf lors de l'utilisation de la EST NULL opérateur.

Je suis assez confus quant à la façon de sortir de cette.
Je veux obtenir les données XML à partir de la colonne.

Grâce

  • Pouvez-vous nous donner le réel de la requête et des structures de table afin que nous puissions voir pourquoi vous utilisez GROUP BY à tous? Vous n'utilisez pas la présence d'agrégats de là. Peut aussi un CandidateId plusieurs DetailXML lignes?
  • Martin, ma requête est assez long et en expliquant mon tableau de structure serait assez gênant. Je comprends votre point, mais je ne peux pas discuter de ma DB structure de plus d'ici. Je veux juste un conseil/astuce pour faire bouger les choses.
  • Si candidate_id est une clé primaire dans candidate_instance c'est simple: Vous pouvez utiliser une expression de table commune et rejoindre le cte pour que le tableau en sélectionnant le fichier XML. Ce sera beaucoup plus rapide que la lu de réponse.
InformationsquelleAutor saarthak | 2011-03-07