SQL Server 2005 T SQL cross Apply 与outer apply
SQL Server 2005 T-SQL Apply
透过执行计划可以看出,cross apply类似不带where条件的连接即cross join (交叉连接即笛卡尔积:返回行数为:前表符合条件的行乘上后表符合条件的行) 。形式上会灵活些.
使用 APPLY 运算符可以为实现查询操作的外部表表达式返回的每个行调用表值函数。表值函数作为右输入,外部表表达式作为左输入
。通过对右输入求值来获得左输入每一行的计算结果,生成的行被组合起来作为最终输出。APPLY 运算符生成的列的列表是左输入中
的列集,后跟右输入返回的列的列表。
APPLY 有两种形式: CROSS APPLY 和 OUTER APPLY。CROSS APPLY 仅返回外部表中通过表值函数生成结果集的行。OUTER APPLY 既返
回生成结果集的行,也返回不生成结果集的行,其中表值函数生成的列中的值为 NULL。
例如,考虑下列表 Employees 和 Departments:
复制代码
--Create Employees table and insert values
CREATE TABLE Employees
(
empid int NOT NULL,
mgrid int NULL,
empname varchar(25) NOT NULL,
salary money NOT NULL,
CONSTRAINT PK_Employees PRIMARY KEY(empid),
)
GO
INSERT INTO Employees VALUES(1 , NULL, 'Nancy' , $10000.00)
INSERT INTO Employees VALUES(2 , 1 , 'Andrew' , $5000.00)
INSERT INTO Employees VALUES(3 , 1 , 'Janet' , $5000.00)
INSERT INTO Employees VALUES(4 , 1 , 'Margaret', $5000.00)
INSERT INTO Employees VALUES(5 , 2 , 'Steven' , $2500.00)
INSERT INTO Employees VALUES(6 , 2 , 'Michael' , $2500.00)
INSERT INTO Employees VALUES(7 , 3 , 'Robert' , $2500.00)
INSERT INTO Employees VALUES(8 , 3 , 'Laura' , $2500.00)
INSERT INTO Employees VALUES(9 , 3 , 'Ann' , $2500.00)
INSERT INTO Employees VALUES(10, 4 , 'Ina' , $2500.00)
INSERT INTO Employees VALUES(11, 7 , 'David' 
相关文档:
系统环境:Windows 7
软件环境:Visual C++ 2008 SP1 +SQL Server 2005
本次目的:编写一个航空管理系统
这是数据库课程设计的成果,虽然成绩不佳,但是作为我用VC++ 以来编写的最大程序还是传到网上,以供参考。用VC++ 做数据库设计并不容易,但也不是不可能。以下是我的程序界面,后面 ......
SQL Server 导入/导出教程
更多请查看: http://faq.gzidc.com/index.php?option=com_content&task=category§ionid=12&id=21&Itemid=43
1、打开本地企业管理器,先创建一个SQL Server注册来远程连接服务器端口SQL Server。
步骤如下图:
图1:
2、弹出窗口后输入内容。"总是提示输入登陆名和密码" ......
--聚合函数
use pubs
go
select avg(distinct price) --算平均数
from titles
where type='business'
go
use pubs
go
select max(ytd_sales) --最大数
from titles
go
use pubs
go
select min(ytd_sales) --最小数
from titles
go
use pubs
go
select type,sum(price),sum(advance)  ......
1. 在使用sql server 之前呢,最好对其进行配置
(1) 配置工具->Sql server configuration Manager
选择Sql server 2005网路配置 下的 MSSQLSERVER的协议 在窗口右边的
TCP/IP协议右键属性,配置如下
&n ......
在使用SQL Server数据库时, 如果需要访问远程的另外一个数据库, 那么可以使用Linked Server来实现这个功能, 很方便. 本文总结了自己在使用Linked Server功能时遇到的几个问题, 如果稍不注意,很可能出现各种错误.
1)创建了一个新的Linked Server后, 需要首先设置login 账户, 右键->属性->Security, 如图
......