CREATE FUNCTION [dbo].[Test] (@ID INT, @VAL INT)
RETURNS @Return TABLE (ID INT, VAL INT)
AS
BEGIN
INSERT IGNORE 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 IGNORE INTO @T1
SELECT 1
UNION ALL
SELECT 2
UNION ALL
SELECT 3
UNION ALL
SELECT 4
INSERT IGNORE 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 यदि उपलब्ध हो के 2 परम में T2.Val में पारित, और T1.Val में पारित करने के लिए। बदल रहा है FX परिभाषा संभव नहीं है।
मैं इस काम पाने के लिए नहीं कर पा रहे। मैं IsNull की कोशिश की और है कि या तो काम नहीं करता।