在 sql 服务器的查询中调用 table 值函数
Call table value function inside my query in sql server
我创建了这个函数
ALTER FUNCTION [dbo].[FxPackageReport]
( @packageId int )
RETURNS table
AS
RETURN (
select *from TestPackageReportDetails where TestPackageId=@packageId and step='LineCheck'
)
select *from dbo.fxpackagereport(5457)
结果:
我想将这些列合并到我的 select 中,如下所示:
select id,select *from dbo.fxpackagereport(id), from testpackage
是否有任何解决方案可以将此结果与我的查询合并>?我只想将 table 结果放入我的查询中。
UDF 看起来相当简单,因此与其使用 UDF,不如使用简单的连接。
Select A.*
,B.*
From testpackage A
Join TestPackageReportDetails B
on (TestPackageId=A.ID and step='LineCheck')
另一种选择是使用 CROSS APPLY 和您的 UDF
select A.id
,B.*
from testpackage A
Cross Apply (Select * from dbo.fxpackagereport(A.id)) B
我创建了这个函数
ALTER FUNCTION [dbo].[FxPackageReport]
( @packageId int )
RETURNS table
AS
RETURN (
select *from TestPackageReportDetails where TestPackageId=@packageId and step='LineCheck'
)
select *from dbo.fxpackagereport(5457)
结果:
我想将这些列合并到我的 select 中,如下所示:
select id,select *from dbo.fxpackagereport(id), from testpackage
是否有任何解决方案可以将此结果与我的查询合并>?我只想将 table 结果放入我的查询中。
UDF 看起来相当简单,因此与其使用 UDF,不如使用简单的连接。
Select A.*
,B.*
From testpackage A
Join TestPackageReportDetails B
on (TestPackageId=A.ID and step='LineCheck')
另一种选择是使用 CROSS APPLY 和您的 UDF
select A.id
,B.*
from testpackage A
Cross Apply (Select * from dbo.fxpackagereport(A.id)) B