已经通过算法查出了 一个类别下的所有子类,
然后把它放到一个TABLE类型变量中
然后再按照Table变量的记录,从原始表记录表,把所有子类下相关的记录全部读出来,按照时间排序,
现在的问题是记录是要翻页的 也就是说要通过字符串拼接 然后 EXEC()才行,TABLE 变量是不能传递给EXEC的。所以我用临时表#CateTab 传给它来处理. 可是这样以来字符串也太长了,首先 通过临时类别表select 出所有相关记录,然后再写TOP翻叶,好家伙,字符串超长,错误不断,怎么办?
类似像下面这样写的,, 有没有简单点的办法呢???
-- 要读取的所有子类记录 的 表格字串
SET @T = '(SELECT * FROM product WHERE CategoryId IN(SELECT CategoryId FROM #CateTab) ORDER BY AddTime DESC) '
-- TOP N 翻页
SET @Sql = 'SELECT TOP '+cast(@PageSize as nvarchar)+ ' * FROM (SELECT TOP '+cast((总记录-当前页*每页数) as nvarchar)+ ' * FROM '+ @T + ' ORDER BY AddTime ASC) A ORDER BY AddTime DESC '
EXEC(@Sql)
先别管写的语法对错,就说这种思路对吗?我是想不出来什么好办法?又要读取子类下所有相关记录,还要番页处理,EXEC 来执行,乱了。帮帮忙!
------解决方案--------------------
。。。。看不明白。