這里用到了一個函數with
WITH CategoryInfo AS( SELECT StuId,StuName,StuParent FROM dbo.Class WHERE StuId = id UNION ALL SELECT a.StuId,a.StuName,a.StuParent FROM dbo.Class AS a,CategoryInfo AS b WHERE a.StuId = b.pid )select * from CategoryInfo這樣就可以取到你想要的包括父集和子集了
你要是想根據查出來的內容做一些比如修改等操作可以這樣寫
declare @StuIds varchar(max); WITH CategoryInfo AS( SELECT StuId,StuName,StuParent FROM dbo.Class WHERE StuId = id UNION ALL SELECT a.StuId,a.StuName,a.StuParent FROM dbo.Class AS a,CategoryInfo AS b WHERE a.StuId = b.pid )select @StuIds=ISNULL(@StuIds+',','')+convert(varchar,StuId) from CategoryInfoset @StuIds='UPDATE StuName from dbo.Class where StuId in('+@StuIds+')'exec(@CompanyCodeIn)
新聞熱點
疑難解答