sql语言高级用法.pdf
文本预览下载声明
第二章 SQL 语言的高级用法 37
第二章 SQL 语言的高级用法
内容摘要
列出结果集中的前 n 个记录;
使用聚集函数;
GROUP BY 使用基础;
用语句 GROUP BY 在结果集中生成集合;
使用 COMPUTE 和 COMPUTE BY 子句;
使用表的别名;
连接查询多个表中的数据;
连接多个结果集;
子查询介绍;
把子查询用作派生的表;
把子查询用作表达式;
用子查询关联数据;
使用 EXISTS 和 NOT EXIT 子旬;
考点提示
熟练掌握内容摘要中的所有语法
2.1 用 TOPn 列出前 n 个记录
关键字 TOP n 可以列出结果集中前 n 个或前 n%的记录。尽管 TOP n 不符合 ANSI
标准,但确实非常有用的,例如,可以使用它列出某公司最畅销的几种产品。
使用关键字 Top n 或 TOP n PERCENT 时,应注意以下事项:
在 ORDER BY 子句中指定排序的范围。如果你不使用 ORDER BY,微软
SQL Server 2000 将按任意顺序返回满足 WHERE 子句的记录;
在关键字 TOP 后使用无符号的整数;
如果 TOP n PERCENT 创建小数,则 SQLServer 将取这个数的下一个整
数;
可以在结果集中用 WlTH TIES 子句包含那些数值相等的记录。如果使
用了 ORDER BY 子句,则当出现两个或多个记录和最后一条记录的值相
等时,这些记录也将出现在结果集中。此时你的结果集可能包含任意
数目的记录,而不只是前 n 个记录或前 n%个记录。
38 MCSE 2000 系列—SQL 2000 编程
注意:只用在用子句 ORDER BY 时,才能用 WITH TIES。
下面的例子使用关键字 TOP n 查询在一次订购中,订购数量最多的前 5 个记录。
注意结果集中并不列出数量一样的记录。
USE northwind
SELECT TOP 5 orderid,productid,quantity
FROM [order details] ·
ORDER BY quantity DESC
GO
运行结果:
orderid productid quantity
10764 39 130
11072 64 130
10398 55 120
10451 55 120
10515 27 120
(5row(s)affected)
下面的例子中使用了关键字 TOPn 和 WITHTIES 子句,它们列出了一次订购中,
订购数量最多的 5 个产品。结果集中一共包含 10 条记录,因为表中有订购数量和
前一条记录相同的其他记录存在。比较这个例子和上个例子的结果集的不同之处。
USE northwind
SELECT TOP 5 WITH TIES orderid,productid,quantity
FROM [order details]
ORDER BY quantity DESC
GO
运行结果:
orderid productid quantity
10764 39 130
11072 64 130
10398 55 120
10451 55 120
10515 27 120
10595 61
显示全部