使用 TOP 和 PERCENT 限制结果集 TOP 子句限制返回到结果集中的行数。TOP n [PERCENT]n 指定返回的行数。如果未指定 PERCENT,n 就是返回的行数。如果指定了 PERCENT,n 就是返回的结果集行的百分比,如下所示:TOP 120 /*Return the top 120 rows of the result set. */ TOP 15 PERCENT /* Return the top 15% of the result set. */.如果一个 SELECT 语句既包含 TOP 又包含 ORDER BY 子句,那么返回的行将会从排序后的结果集中选择。整个结果集按照指定的顺序建立并且返回排好序的结果集的前 n 行。限制结果集大小的另一种方法是在执行一个语句之前执行 SET ROWCOUNT n 语句。SET ROWCOUNT 与 TOP 的不同之处在于: SET ROWCOUNT 限制适用对 ORDER BY 取值后在结果集中生成行。如果指定了 ORDER BY,SELECT 语句将在从某个已根据指定的 ORDER BY 分类进行了排序的值集中选择 n 行后终止。 TOP 子句适用于指定了该子句的单个 SELECT 语句。在执行另一个 SET ROWCOUNT 语句之前,SET ROWCOUNT 会一直有效,例如执行 SET ROWCOUNT 0 将会关闭此选项。
sno必须唯一: update 表名 set class = (case when sno in (select top 10 percent sno from 表名order by grade) then '一等奖' else '二等奖' end)
sno必须唯一: update 表名 set class = (case when sno in (select top 10 percent sno from 表名order by grade desc) then '一等奖' else '二等奖' end)
TOP 子句限制返回到结果集中的行数。TOP n [PERCENT]n 指定返回的行数。如果未指定 PERCENT,n 就是返回的行数。如果指定了 PERCENT,n 就是返回的结果集行的百分比,如下所示:TOP 120 /*Return the top 120 rows of the result set. */
TOP 15 PERCENT /* Return the top 15% of the result set. */.如果一个 SELECT 语句既包含 TOP 又包含 ORDER BY 子句,那么返回的行将会从排序后的结果集中选择。整个结果集按照指定的顺序建立并且返回排好序的结果集的前 n 行。限制结果集大小的另一种方法是在执行一个语句之前执行 SET ROWCOUNT n 语句。SET ROWCOUNT 与 TOP 的不同之处在于: SET ROWCOUNT 限制适用对 ORDER BY 取值后在结果集中生成行。如果指定了 ORDER BY,SELECT 语句将在从某个已根据指定的 ORDER BY 分类进行了排序的值集中选择 n 行后终止。
TOP 子句适用于指定了该子句的单个 SELECT 语句。在执行另一个 SET ROWCOUNT 语句之前,SET ROWCOUNT 会一直有效,例如执行 SET ROWCOUNT 0 将会关闭此选项。
update 表名 set class = (case when sno in (select top 10 percent sno from 表名order by grade) then '一等奖' else '二等奖' end)
update 表名 set class = (case when sno in (select top 10 percent sno from 表名order by grade desc) then '一等奖' else '二等奖' end)
如果再加一个属性:班级。根据不同的班级进行分等级怎么办?
(对原表“学生成绩(班级,学号,成绩)”生成视图)
即要达到如下效果: 班级 学号(主键) 成绩 等级
c1 s1 80 一等奖
c1 s2 79 二等奖
... ... ...
c2 s3 87 一等奖
c2 s4 85 二等奖
... ... ...
top 好象不可以和group by 用一起的啊?
好象这问题有点难实现哦
真是晕啊,枉费了大家的一泛苦心哦!!1