Erreur - “l'UNION exploitant doit disposer d'un nombre égal d'expressions” lors de l'utilisation d'expression de table commune récursive de sélection

En ce moment j'ai une table tblLocation avec des colonnes ID, Location, PartOfID.

La table est récursivement connecté à lui-même: PartOfID -> ID

Mon but est d'avoir une sélection de sortie comme suit:

> France > Paris > AnyCity >

Explication: AnyCity est situé à Paris, à Paris, est situé en France.

Ma solution que j'ai trouvé jusqu'à maintenant est celle-ci:

; with q as (
select ID,Location,PartOf_LOC_id from tblLocatie t
where t.ID = 1 -- 1 represents an example
union all
select t.Location + '>' from tblLocation t
inner join q parent on parent.ID = t.LOC_PartOf_ID
)
select * from q

Malheureusement j'obtiens l'erreur suivante:

Toutes les requêtes combinées à l'aide d'une UNION, INTERSECT ou except exploitant doit disposer d'un nombre égal d'expressions dans leurs listes cible.

Si vous avez une idée de comment je pourrais réparer ma sortie il serait grand.

Ce qui est pas clair sur le message d'erreur?

OriginalL'auteur user2871811 | 2013-11-30