gpt4 book ai didi

sql-server-2005 - 是否可以将表值函数和另一个带参数的表连接起来

转载 作者:行者123 更新时间:2023-12-03 01:32:10 25 4
gpt4 key购买 nike

感兴趣的人可以了解一下背景知识,

我有一个主详细信息表(选项日期),每个主记录大约有 20 个详细信息。我们保存数据的 oltp 系统为我们保存的每条新信息执行 21 次插入。这会导致服务器崩溃,因此我尝试通过用逗号分隔的值替换详细信息表来使其正常工作。一切似乎都正常,除了我可以弄清楚如何取回详细信息表。我正在尝试使用表值函数,但它不太有效。

我想调用

Select Top 100 *
FROM dbo.fn_MarketDataDetails (MarketDataMasterID) mdd
INNER JOIN MarketDataMaster mdm on mdm.MarketDataMasterID = mdd.MarketDataMasterID

显然,这无法编译。

我可以跑

Select Top 100 *
FROM dbo.fn_MarketDataDetails (15425) // Assuming 15425 is a valid MarketDataMasterID

我得到了一个看起来像我的旧详细信息表的表。

这可能吗?我说得有道理吗?

最佳答案

APPLY 运算符应该可以解决问题:

SELECT *
from MarketDataMaster
cross apply dbo.fn_MarketDataDetails (MarketDataMasterID)

这实际上是从 MarketDataMaster 返回的每一行调用该函数一次。“交叉应用”的工作方式类似于内部联接,因为只会返回函数返回数据的行;使用“outer apply”实现与左外连接类似的功能。

关于sql-server-2005 - 是否可以将表值函数和另一个带参数的表连接起来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2916783/

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