首页 ┆ 网站地图 ┆ 在线留言 ┆ 游戏资讯 ┆ 资源下载 ┆ 端午节祝福 ┆ 迅雷在线影视
设为首页
加入收藏
联系我们
高级搜索
您当前的位置: 主页>数据库>基础常识>sql语句使用内嵌视图与临时表示例
sql语句使用内嵌视图与临时表示例
来源: 发布时间:2007-11-01 发布人: 浏览: 人次   字体: [ ]  

某些时候,查询需要将数据与其他一些可能只能通过执行 GROUP BY 然后执行标准查询才能收集的数据进行联接。例如,如果要查询最新五个定单的有关信息,您首先需要知道是哪些定单。这可以使用返回定单 ID 的 SQL 查询来检索。此数据就会存储在临时表(这是一个常用技术)中,然后与 Products 表进行联接,以返回这些定单售出的产品数量:

CREATE TABLE #Temp1 (OrderID INT NOT NULL, _
                     OrderDate DATETIME NOT NULL)
INSERT INTO #Temp1 (OrderID, OrderDate)
SELECT     TOP 5 o.OrderID, o.OrderDate
FROM Orders o ORDER BY o.OrderDate DESC
SELECT     p.ProductName, SUM(od.Quantity) AS ProductQuantity
FROM     #Temp1 t 
    INNER JOIN [Order Details] od ON t.OrderID = od.OrderID
    INNER JOIN Products p ON od.ProductID = p.ProductID 
GROUP BY p.ProductName
ORDER BY p.ProductName
DROP TABLE #Temp1

这些 SQL 语句会创建一个临时表,将数据插入该表中,将其他数据与该表进行联接,然后除去该临时表。这会导致此查询进行大量 I/O 操作,因此,可以重新编写查询,使用内嵌视图取代临时表。内嵌视图只是一个可以联接到 FROM 子句中的查询。所以,您不用在 tempdb 中的临时表上耗费大量 I/O 和磁盘访问,而可以使用内嵌视图得到同样的结果:

SELECT p.ProductName, 
    SUM(od.Quantity) AS ProductQuantity
FROM     (
    SELECT TOP 5 o.OrderID, o.OrderDate
    FROM     Orders o 
    ORDER BY o.OrderDate DESC
    ) t 
    INNER JOIN [Order Details] od ON t.OrderID = od.OrderID
    INNER JOIN Products p ON od.ProductID = p.ProductID 
GROUP BY
    p.ProductName
ORDER BY
    p.ProductName

此查询不仅比前面的查询效率更高,而且长度更短。临时表会消耗大量资源。如果只需要将数据联接到其他查询,则可以试试使用内嵌视图,以节省资源。


相 关 文 章   发布商链接
·SET IDENTITY_INSERT的用法
·SQL数据库面试题目及其答案
·sql语句实现根据月分打印月历的两种...
·设计一个用户,角色,功能三者之间的...
·SQL语法中常用字符串函数大全
·DB2、oralce、mysql数据库取前十条记...
·祥解磁盘 I/O 性能 对数据库的影响
·SQL中IN,NOTIN,EXISTS,NOT EXISTS的...
·软件开发之数据库设计技巧大放送
·速学数据库链路的建立及其使用
 §最新评论:(评论内容只代表网友观点,与本站立场无关!)
网名: 验证码:  【所有评论】【↑返回顶部
评 分: 12 345
评论内容:(不能超过500字,请自觉遵守互联网相关政策法规。[按 Ctrl+Enter 可直接提交]
注意:请勿在本站发布政治话题、色情及违反法律的内容。
IT知道网 声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。
推 荐 文 章
·sql语句实现行数据以列等式进
·sql语句获取每月最后一天示例
·两个实现删除数据库字段中汉...
·如何查找数据库中某一字段所...
·速学数据库链路的建立及其使...
·软件开发之数据库设计技巧大...
·SQL中IN,NOTIN,EXISTS,NOT EX...
·DB2、oralce、mysql数据库取...
·SQL语法中常用字符串函数大全
·设计一个用户,角色,功能三...
·sql语句实现根据月分打印月历
·SQL数据库面试题目及其答案
·SET IDENTITY_INSERT的用法
热 门 文 章
·SQL数据库面试题目及其答案
·SQL中IN,NOTIN,EXISTS,NOT EX...
·SQL语法中常用字符串函数大全
·SET IDENTITY_INSERT的用法
·SQL查询指定条数的记录语句
·超全超强SQL语法大全
·祥解磁盘 I/O 性能 对数据库...
·DB2、oralce、mysql数据库取...
·sql语句获取每月最后一天示例
·速学数据库链路的建立及其使...
·两个实现删除数据库字段中汉...
·比较不错的SQL分页查询存储过...
·sql日期计算日期精确到天,包...
·软件开发之数据库设计技巧大...
·如何查找数据库中某一字段所...
网站首页 - 关于本站 - 加入收藏 - 网站地图 - 友情连接 - 在线留言 - 联系我们 - 返回顶部
Copyright © 2007 IT知道网.[冀ICP备07026896号]. All Rights Reserved .