WEB开发网
开发学院数据库MSSQL Server T-SQL Enhancement in SQL Server 2005 - Part I 阅读

T-SQL Enhancement in SQL Server 2005 - Part I

 2008-12-06 10:15:56 来源:WEB开发网   
核心提示: 再次运行上面的查询,我们会发现最终返回的结果为空: 看来CROSS APPLY使用的是Inner Join,T-SQL Enhancement in SQL Server 2005 - Part I(3),我们现在来试试OUTER APPLY: Order记录被返回,通过TVF获得的Pro

再次运行上面的查询,我们会发现最终返回的结果为空:

T-SQL Enhancement in SQL Server 2005 - Part I

看来CROSS APPLY使用的是Inner Join。

我们现在来试试OUTER APPLY:

Order记录被返回,通过TVF获得的ProductNumber和Name的值为NULL。这充分说明了OUTER APPLY采用的是OUTER JOIN。

T-SQL Enhancement in SQL Server 2005 - Part I

二、      Common Table Expression

Common Table Expression(CTE)可以看成是一个临时创建的View,他的生命周期仅仅限于当前Context。一旦CTE被创建,你可以将它当成一般的Table,大部分基于Table的操作都可以运用于CTE。下面是创建CTE的语法结构:

WITH cte_name(column name list)
AS
(
   query
)
E.G.
WITH CTE_Black_Product
AS
(
  SELECT * FROM Production.Product WHERE Color = 'Black'
)
SELECT * FROM CTE_Black_Product

CTE具有广泛的运用,他往往具有将问题化繁为简的魔力。下面介绍几个典型的运用:

1.     1.      将复杂的Aggregate置于CTE中,将复杂的问题分解为多个步骤。

如果我们现在需要统计每个客户发出的订单数量(相关数据存储于Sales.SalesOrderHeader

中),同时输出客户的个人信息(相关数据存储于Sales.Customer中)。虽然这样的功能很简单,但他体现了一种思想,把一部完成略显复杂的功能进程分解成多个简单的步骤。

上一页  1 2 3 4  下一页

Tags:SQL Enhancement in

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接