日期:2014-05-17  浏览次数:20362 次

分页且按总分排序,分页且按总分排序
DECLARE @SQL VARCHAR(5000) SET @SQL =' SELECT top '+Convert(varchar(4),20)+'  a.pro_id,a.pro_title,convert(decimal(18,2),(sum(convert(decimal(18,2),b.praise_xjbscore)))/count(praise_id)) as zf from  p_product A left join p_praise b on pro_id=praise_pro where pro_id not in (select top ' + cast((20*(convert(Int,1)-1)) as varchar(10))+'    a.pro_id,convert(decimal(18,2),(sum(convert(decimal(18,2),b.praise_xjbscore)))/count(praise_id)) as zf from p_product a left join p_praise b on pro_id=praise_pro  where 1=1 group by a.pro_id order by  zf desc)  group by a.pro_id,a.pro_title order by  zf desc' EXECUTE  (@SQL)

当没有用 EXISTS 引入子查询时,在选择列表中只能指定一个表达式。如何解决了

------解决方案--------------------
你这样写太麻烦了,
现在有Row_Number()函数可以生成行号,然后通过等号用between and 不就可以得到你想要的结果吗?
类似的,先做个子查询: 
select *,Row_Number() over(order by name) rn
from tb
你试一下