帮我解释一下sql语句 谢谢

来源:百度知道 编辑:UC知道 时间:2024/06/03 17:39:10
"WITH MOVIES AS ( SELECT ROW_NUMBER() OVER (ORDER BY " + sort + " " + dir + ")AS Row," +
" ID_MOVIE,TITLE, RATING,VOTES,YEAR,GENRE FROM TB_MOVIE )" +
" SELECT ID_MOVIE,TITLE, GENRE,RATING,VOTES,YEAR FROM MOVIES " +
" WHERE Row between (@PageIndex-1)* @PageSize+1 and @PageIndex*@PageSize";
string sql = "WITH MOVIES AS ( SELECT ROW_NUMBER() OVER (ORDER BY " + sort + " " + dir + ")AS Row," +
" ID_MOVIE,TITLE, RATING,VOTES,YEAR,GENRE FROM TB_MOVIE )" +
" SELECT ID_MOVIE,TITLE, GENRE,RATING,VOTES,YEAR FROM MOVIES " +
" WHERE Row between (@PageIndex-1)* @PageSize+1 and @PageIndex*@PageSize";

SqlCommand cmd = new SqlCommand(sql, con);
//add the parameters to the query to grab the c

你这个不是完整的SQL语句,SQL语句不以WITH开头

笑话,谁说SQL语句没有WITH开头的,晕。

WITH相当于结果缓存。常用作代替子查询。

WITH MOVIES...那一句的意思是将后面SELECT ROW_NUMBER()...的结果叫做MOVIES。

ROW_NUMBER() OVER(ORDER BY ) 的意思是按后面ORDER BY 的条件排序后,给每行一个行号码(1,2,3...)这样的并取名叫ROW。

然后再从MOVIES里面选择ID_MOVIE等等列。

整个语句的作用是在ASP.NET页面中,实现按条件分页的效果。因为ORDER BY 的条件是由SORT和DIR两个变量传入的。