目录
1.查找所有父节点
with tab as
(
select Type_Id,ParentId,Type_Name from Sys_ParamType_V2_0 where Type_Id=316--子节点
union all
select b.Type_Id,b.ParentId,b.Type_Name
from
tab a,--子节点数据集
Sys_ParamType_V2_0 b --父节点数据集
where a.ParentId=b.Type_Id --子节点数据集.parendID=父节点数据集.ID
)
select * from tab;
2.查找所有子节点
with tab as
(
select Type_Id,ParentId,Type_Name from Sys_ParamType_V2_0 where Type_Id=1--父节点
union all
select b.Type_Id,b.ParentId,b.Type_Name
from
tab a,--父节点数据集
Sys_ParamType_V2_0 b--子节点数据集
where b.ParentId=a.Type_Id --子节点数据集.ID=父节点数据集.parendID
)
select * from tab;
3.查找从子节点到定级节点的路径
with tab as
(
select Type_Id,ParentId,Type_Name,cast(Type_Id as varchar(100)) as fulltypeid
from SKU_ProductType where Type_Id=423--子节点
union all
select
b.Type_Id,b.ParentId,b.Type_Name,
cast(a.fulltypeid+','+cast(b.Type_Id as nvarchar(100)) as varchar(100)) as fulltypeid
from
tab a,--子节点数据集
SKU_ProductType b --父节点数据集
where a.ParentId=b.Type_Id --子节点数据集.parendID=父节点数据集.ID
)
select * from tab ;
4.父查子并数据
with tab(ID, BELONGTO, GRADE, TEXT, "SEQUENCE") as
(
select ID, BELONGTO, GRADE, TEXT, "SEQUENCE" from TS_DEPARTMENT where TEXT LIKE '%$P.name%' and ID in('xxxxxxxx')
union all
select b.ID, b.BELONGTO, b.GRADE, b.TEXT, b."SEQUENCE"
from
tab a,
TS_DEPARTMENT b
where b.BELONGTO=a.ID
)
select * from tab
Union
select c.ID, c.BELONGTO, c.GRADE, c.TEXT, c."SEQUENCE" from TS_DEPARTMENT c where c.ID='1' ORDER BY
grade,
"SEQUENCE",
ID
温馨提示:如果小编分享的对你有所帮助的话,麻烦点个赞,鼓励一下。