Order by子句在视图中无效

时间:2013-08-05 10:01:26

标签: sql sql-server sql-server-2008 sql-server-2005

如果有人可以帮我解决此问题。我正在使用以下查询,但它无法正常工作

WITH cte AS 
(select   sb.ImageId, sb.LicenceType, sb.ImgCollection, sb.nbofviews, sb.orientation, sb.shootdate, sd.ImgName, sd.Caption, sd.ImgPath, sd.ImageType, sd.ImgHoverPath,  sc.image_color from searchinitial si INNER JOIN SearchBrain sb ON si.ImageId = sb.ImageId INNER JOIN searchcolors sc ON si.ImageId = sc.ImageId INNER JOIN searchdetails sd ON si.ImageId = sd.ImageId where  si.Primarykeyword in (Select Primary_kwd from p2_kwdmgmt where all_kwd in ('man','jumping', 'beach'))group by si.ImageIDhaving count(distinct si.Primarykeyword) = 3 order by si.imageid desc)
SELECT * FROM cte WHERE ROW BETWEEN 0 AND 31

1 个答案:

答案 0 :(得分:1)

为什么不使用row_number

而不是使用CTE和/或SELECT TOP n
  select top 30
  ....
  order by si.imageid desc