SQL中apply的一点问题,求助中。。。

来源:百度知道 编辑:UC知道 时间:2024/05/22 17:55:38
先看代码:
Use Adventureworks
go
create function sales.mostrecentorders(
@custID AS int)
returns TABLE---->这个别returns是做什么用的?
AS---》它的作用是什么啊?
return-----》这个呢?
select top(3)salesorderid,orderdate
from sales.salesorderheader
where customerid=@custid
order by orderdate desc
go------》什么情况要用GO?
SELECT name AS customer,mostrecent.* FROM sales.store-->“mostrecent.*”是一个表还是一个字段?
outer apply sales.mostrecentorders(customerID)--》outer是作什么用的?
AS mostrecent---》这句是什么意思?
Where name like'a%'

以上这段代码的功能是什么?小弟是初学者,分不多,麻烦各位多多指教,谢谢了!
再问一点:APPLY的函数是只用于某一个指定的表,还是通用的?

Use Adventureworks
go
create function sales.mostrecentorders(
@custID AS int)
returns TABLE---->这个别returns是做什么用的?
Returns返回值类型,这里定义的是数据表

AS---》它的作用是什么啊?
表示从AS以下的语句就是此Function的实现

return-----》这个呢?
表示将以下结果全部返回给调用者

select top(3)salesorderid,orderdate
from sales.salesorderheader
where customerid=@custid
order by orderdate desc
go------》什么情况要用GO?
有一批处理语句时需要用,比如有若干条SQL要执行,就以GO作为

SELECT name AS customer,mostrecent.* FROM sales.store-->“mostrecent.*”是一个表还是一个字段?
表示mostrecent中的全部字段

outer apply sales.mostrecentorders(customerID)--》outer是作什么用的?
表示采用外联

AS mostrecent---》这句是什么意思?
作为表别名使用

Where name like'a%'

使用 APPLY 运算符可以为实现查询操作的外部表表达式返回的每个行调用表值函数。表值函数作为右输入,外部表表达式作为左输入。通过对右输入求值来获得左输入每一行的计算结果,生成的行被组合起来作为最终输出。APPLY 运算符生成的列的列表是左输入中的列集,后跟右输入返回的列的列表。
APPLY 有两种形式: CROSS APPLY 和 OUTER APPLY。CROSS APPLY 仅返回外部表中通过表值函数生成结果集的行。O