问题描述。借用了adinet的问题。参见:https://www.jb51.net/article/28670.htm
今天做项目遇到一个问题,
有产品分类A,B,C顶级分类,
期中A下面有a1,a2,a3子分类.
但是a1可能共同属于A和B,然后我的数据库是这样设计的
id |
name |
parnet |
1 |
A |
0 |
2 |
B |
0 |
3 |
a1 |
1,2 |
|
|
|
如果想要查询A的所有子类的话就要查询parent中包含1的,所以就萌生了这个办法.呵呵,
解决方案
复制代码 代码如下:
with cte as
(select * from tb where id='1'
union all
select tb.* from tb join cte on charindex(cast(cte.id as varchar(10)),tb.parentid)>0)
select * from cte
您可能感兴趣的文章:- 使用SqlServer CTE递归查询处理树、图和层次结构
- 在sqlserver中如何使用CTE解决复杂查询问题
- SQLSERVER2008中CTE的Split与CLR的性能比较
- 使用SQLSERVER 2005/2008 递归CTE查询树型结构的方法
- sqlserver另类非递归的无限级分类(存储过程版)
- SqlServer使用公用表表达式(CTE)实现无限级树形构建