Как выбрать родительские дочерние записи с условием в sql?

#sql-server

#sql-сервер

Вопрос:

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

 CREATE TABLE CTE(
        Title VARCHAR(20),
        ParentTitle VARCHAR(20),
        visible VARCHAR(20),    
        showwhenvisiblefalse VARCHAR(20)
    ) 

INSERT INTO CTE
VALUES
('p1', 'Home', 'TRUE', 'TRUE'),
('p1.1', 'p1', 'TRUE', 'TRUE'),
('p1.2', 'p1', 'FALSE', 'TRUE'),    
('p1.3', 'p1.2', 'TRUE', 'TRUE'), 
('p1.3.1', 'p1.3', 'TRUE', 'TRUE'), 
('p2', 'Home', 'TRUE', 'TRUE'), 
('p2.1', 'p2', 'TRUE', 'TRUE'), 
('p2.2', 'p2.1', 'FALSE', 'false'),    
('P3', 'Home', 'TRUE', 'TRUE'), 
('p3.1', 'p3', 'TRUE', 'TRUE'), 
('P3.1.1', 'p3.1', 'FALSE', 'TRUE')
  

Я пытался

 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' )
  

Мне нужен вывод, подобный

 title
p1
p1.1
p2
p2.1
p2.2
P3
p3.1
  

нужно без рекурсии. используя..joins..

Комментарии:

1. Ну, вы знаете родительский уровень?

2. Да ..6 уровень… @NEER

3. любой .. один .. решите .. это…