declare @sql as nvarchar(max),@sql1 as nvarchar(max),@sql2 as nvarchar(max),@i as int,@j as int,@l as int,@tmp as nvarchar(max),@stri as nvarchar(5)
set @sql1='';
set @i=0
set @l=3
set @sql2=''
while(@i<@l)
begin
set @stri=cast(@i as nvarchar(5))
set @sql='declare @max'+@stri+' as table(id bigint,parentid int);
insert into @max'+@stri+'(id,parentid)
select max(id),parentid
from Products inner join Classes on Classes.classid=Products.classid
where parentid>0 '
set @j=0
set @tmp=''
while(@j<@i)
begin
set @tmp=@tmp+' and id not in(select id from @max'+cast(@j as nvarchar(5))+')'
set @j=@j+1
end
set @sql=@sql+@tmp+' group by ParentID;'
set @sql1=@sql1+@sql;
if(@i>0) set @sql2=@sql2+' union '
set @sql2=@sql2+'select * from @max'+@stri+' '
set @i=@i+1
end
set @sql=@sql1+
'select ProductName,ProductDpic,1 as indexID,Products.ID,UserName,RealName,Products.Addtime,ParentID from
Products inner join Admin_User on Admin_User.id=Products.userid inner join ('
+@sql2+') as t on t.id=products.id'
exec sp_executesql @sql
【缅怀】传奇谢幕,回顾霍金76载传奇人生
【推荐】业界最快速.NET数据可视化图表组件
【腾讯云】买域名送解析+SSL证书+建站
【活动】2050 科技公益大会 - 年青人因科技而团聚
· 蓝标正式回应:员工爆料与事实严重不符,已委托第三方进行调查
· 8848在瑞士发布巴塞尔纪念款手机,售价19888元起
· 华为公布新一届董事会:梁华接替孙亚芳出任新董事长
· 一文读懂乔布斯想杀死的Dropbox:2分钟视频获上千万用户
· 滴滴CTO张博:从未有“大数据杀熟”,未来也永远不会
» 更多新闻...
· 和程序员谈恋爱
· 学会学习
· 优秀技术人的管理陷阱
· 作为一个程序员,数学对你到底有多重要