我需要搜索标题'%p%'
。如果我检查标题,父牌和状态作为父级和子级。如果搜索到的标题父级可见为真,则显示子标题。
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
需要没有递归。 using..joins ..