1
CREATE FUNCTION [dbo].[Test] (@ID INT, @VAL INT)
RETURNS @Return TABLE (ID INT, VAL INT)
AS
BEGIN
INSERT INTO @Return
SELECT @ID, @VAL
RETURN;
END
GO
DECLARE @T1 TABLE (ID INT IDENTITY(1,1), VAL INT)
DECLARE @T2 TABLE (ID INT, VAL INT)
INSERT INTO @T1
SELECT 1
UNION ALL
SELECT 2
UNION ALL
SELECT 3
UNION ALL
SELECT 4
INSERT INTO @T2
SELECT 1,1
UNION
SELECT 2,4
UNION
SELECT 3,3
SELECT *
FROM @T1 T1
LEFT JOIN @T2 T2 ON T1.[ID] = T2.[ID]
LEFT JOIN [dbo].[Test] (1, COALESCE(T2.[VAL],T1.VAL)) T ON T1.ID = T.ID
GO
DROP FUNCTION [dbo].[Test]
GO
は他に、利用可能な場合、FXの第二のparamにT2.Valに渡しT1.Valに渡します。 FX定義を変更することはできません。
私はこの作品を手に入れることはできません。私はISNULLを試しましたが、どちらもうまくいきません。あなたは、テーブル値関数を呼び出したい場合は(あなたがLEFT JOIN
を使用しているため、この場合にはOUTER APPLY
)
これは機能します!ありがとうと理由は、実際のFXは、より多くのparamsを持っているので、私は上記のサンプルコードで基本的なものを模倣しようとしました。もう一度おねがいします。期限が切れたときに回答としてマークします。 – 007