求助,这个sql该怎么写。。。
parentId,channelId,siteId,chnlName
0 3473 13 广州市
3473 3474 13 白云区
3473 3475 13 天河区
3475 3476 13 棠下
3475 3477 13 棠东
3473 3478 13 海珠区
0 3479 13 东莞市
3479 3450 13 市区
3479 3451 13 市政府
现在要求是给一个channelId=3473的时候要将
0 3473 13 广州市
3473 3474 13 白云区
3473 3475 13 天河区
3475 3476 13 棠下
3475 3477 13 棠东
3473 3478 13 海珠区
这段数据全部查出来~~
这段sql应该怎么写?且数据是动态添加的~~求高手赐教~~
[解决办法]
if object_id('[tb]') is not null drop table [tb]gocreate table [tb]([parentId] int,[channelId] int,[siteId] int,[chnlName] varchar(6))insert [tb]select 0,3473,13,'广州市' union allselect 3473,3474,13,'白云区' union allselect 3473,3475,13,'天河区' union allselect 3475,3476,13,'棠下' union allselect 3475,3477,13,'棠东' union allselect 3473,3478,13,'海珠区' union allselect 0,3479,13,'东莞市' union allselect 3479,3450,13,'市区' union allselect 3479,3451,13,'市政府'go;with cte as( select * from tb where channelId=3473 union all select b.* from cte a join tb b on b.parentid=a.channelid)select * from cte order by channelid/**parentId channelId siteId chnlName----------- ----------- ----------- --------0 3473 13 广州市3473 3474 13 白云区3473 3475 13 天河区3475 3476 13 棠下3475 3477 13 棠东3473 3478 13 海珠区(6 行受影响)**/