日期:2014-05-19  浏览次数:20492 次

先别管写的对错,就说这种思路对吗?我是想不出来什么好办法?又要读取子类下所有相关记录,还要番页处理,EXEC 来执行,乱了。帮帮忙!
已经通过算法查出了   一个类别下的所有子类,
然后把它放到一个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   来执行,乱了。帮帮忙!




------解决方案--------------------
。。。。看不明白。