gpt4 book ai didi

sql - 如何使左外连接成为任何 sql 表的 UD 函数?

转载 作者:行者123 更新时间:2023-12-02 17:42:09 25 4
gpt4 key购买 nike

我有一张 table 。我有一个用户定义的函数(UDF)。我的 UDF 返回一张表。我需要左外连接我的表和 UDF 表。

最佳答案

使用 SQL Server 2005 的新 APPLY 子句。 APPLY 子句允许您将表连接到表值函数。这样您就可以编写如下查询:

SELECT  C.CustomerID, 
O.SalesOrderID,
O.TotalDue
FROM
AdventureWorks.Sales.Customer AS C
CROSS APPLY
AdventureWorks.dbo.fn_GetTopOrders(C.CustomerID, 3) AS O
ORDER BY
CustomerID ASC, TotalDue DESC

APPLY 子句的作用类似于没有 ON 子句的 JOIN,有两种类型:CROSS 和 OUTER。 OUTER APPLY 子句返回左侧(客户)的所有行,无论它们是否返回表值函数中的任何行。如果没有返回行,则表值函数返回的列将为 null。如果表值函数返回行,则 CROSS APPLY 仅从左侧(客户)返回行。

来源:Using CROSS APPLY in SQL Server 2005

编辑:正如 Lieven 提到的,只有当您需要将值从表传递到 UDF 时,才需要 CROSS APPLY。

关于sql - 如何使左外连接成为任何 sql 表的 UD 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/847012/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com