В этот момент у меня есть таблица tblLocation
со столбцами ID, Location, PartOfID
.
Таблица рекурсивно связана с собой: PartOfID -> ID
Моя цель состоит в следующем:
> France > Paris > AnyCity >
Объяснение: AnyCity находится в Париже, Париж находится во Франции.
Мое решение, которое я нашел до сих пор, было следующим:
; 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
К сожалению, я получаю следующую ошибку:
Все запросы, объединенные с использованием оператора UNION, INTERSECT или EXCEPT, должны иметь равное количество выражений в своих целевых списках.
Если у вас есть идея, как я могу исправить свой вывод, было бы здорово.