#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. любой .. один .. решите .. это…