解释SQL语句

qq_37798348 2017-05-12 12:39:23
select * from(select row_number() over (order by a.ID) as rowNum,a.* from ( select top(300) [ID],[StuId],[LessonId],[Grade],[StuName],[LessonName],[Class],[ProfessionName] FROM [PMSDB].[dbo].[CJGX]where 1=1 ) as a) c where c.rowNum>150
请解释一下这个语句的作用吧,有点复杂
...全文
818 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Bad_Milo_ 2017-07-27
  • 打赏
  • 举报
回复

SELECT				//返回c的查询结果()
	*				
FROM
	(
		SELECT
			row_number () over (ORDER BY a.ID) AS rowNum, //根据ID排序 然后生成顺序编号
			a.*																						//a的所有结果
		FROM
			(				
				SELECT																			//从[ PMSDB ].[ dbo ].[ CJGX ]里面查下面这些数据
					top (300) [ ID ],[ StuId ],[ LessonId ],[ Grade ],[ StuName ],[ LessonName ],[ Class ],[ ProfessionName ]
				FROM
					[ PMSDB ].[ dbo ].[ CJGX ]
				WHERE
					1 = 1   // 这个1=1不必要吧
			) AS a
	) c
WHERE
	c.rowNum > 150    //顺序编号大于150
结帖率0% 哎。
shinger126 2017-07-27
  • 打赏
  • 举报
回复
;with t as (select top 300 row_number() over (order by ID) as rowNum, [ID],[StuId],[LessonId], [Grade],[StuName],[LessonName],[Class],[ProfessionName], FROM [PMSDB].[dbo].[CJGX] ) select * from t where rowNum between 151 and 300 这样写可读性是不是更高些呢,如果top 300的排序列不是id的话,可以自己在order by id那里加上
看破世界 2017-07-27
  • 打赏
  • 举报
回复
这么简单还要问呢
  • 打赏
  • 举报
回复
就是 取id 顺序在 150 到 300的数据
xiaoxiangqing 2017-05-12
  • 打赏
  • 举报
回复
先按id排序,然后取150以后的数据
道玄希言 2017-05-12
  • 打赏
  • 举报
回复
select top(300) [ID],[StuId],[LessonId],[Grade],[StuName],[LessonName],[Class],[ProfessionName] FROM [PMSDB].[dbo].[CJGX]where 1=1 取 [CJGX]表前300条数据. select row_number() over (order by a.ID) as rowNum,a.* from (......) as a 开窗函数, 将取出的 300 条记录, 按照 ID升序排序, rowNum 就是排序后的序号 select * from(....) c where c.rowNum>150 取行号大于 150的记录. 一层层拆开看就可以了,
卖水果的net 2017-05-12
  • 打赏
  • 举报
回复
这语句的目的,是为了取出表中 第 151 - 300 行数据,(但是,这语句居然没有排序字段) 也就是常说的分页显示功能;
二月十六 2017-05-12
  • 打赏
  • 举报
回复
最里边取了300条数据,然后外边一层加了一个按id 升序排的行号,最外层获取行号大于150的数据
二月十六 2017-05-12
  • 打赏
  • 举报
回复
这个语句写复杂了,可以简化一下

662

社区成员

发帖
与我相关
我的任务
社区描述
提出问题
其他 技术论坛(原bbs)
社区管理员
  • community_281
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧