問題描述。借用了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)實現無限級樹形構建