Member 12804081 Ответов: 1

Как выбрать заголовок с помощью родительской и дочерней иерархии с видимыми 'true' и' false ' в SQL?


Мне нужно найти заголовок " %p%". если я проверю заголовок, родительскую плитку и статус как родительский и дочерний уровни. если искомый заголовок parent visible имеет значение true, то покажите дочерний заголовок.

СОЗДАТЬ ТАБЛИЦУ CTE(
Название ВАРЧАР(20),
ParentTitle VARCHAR(20),
видимый ВАРЧАР(20),
)

ВСТАВИТЬ В ОТВ
ЦЕННОСТИ
('p1', 'Home', 'TRUE'),
('Р1.1', 'Р1', 'правда'),
('Р1.2', 'Р1', 'ложь'),
('Р1.3', '1 изн.2', 'правда'),
('Р1.3.1', '1 изн.3', 'правда'),
(Р2', 'дома', 'правда'),
(Р2.1', Р2', 'правда'),
(Р2.2', 'Р2.1', 'ложь'),
('P3', 'Home', 'TRUE'),
(Р3.1', Р3', 'правда'),
(Р3.1.1', 'Р3.1', 'ложь')



Мне нужен вывод типа

заглавие
П1
П1.1
Р2
Р2.1
P3
Р3.1

Что я уже пробовал:

Select b.Title,b.ParentTitle from CTE  B
 left join  CTE C   ON C.ParentTitle=b.Title AND b.visible='TRue'
 where b.ParentTitle in(Select a.ParentTitle from CTE A  join CTE B on a.Title=b.ParentTitle  and b.visible='false')

i tried this query. But i can't get correct answer..

1 Ответов

Рейтинг:
2

Member 9831003

Привет,

Вам нужно применить рекурсивный cte . Попробуйте следующий сценарий для вашего вывода.


;с tbl как (
выберите название, ParentTitle из cte, где ParentTitle= 'Home'
союз всех
выберите.название,.ParentTitle от КТР внутреннего объединения ТБЛ б о
а.ParentTitle=б.название
где.видимое= "истина"
)

выберите заголовок из tbl order by title

Здесь tbl - это cte.

Спасибо