Erstellen Sie eine Funktion mit Parametern, wie Sie benötigen.
CREATE FUNCTION Greatest
(
@Param1 DATETIME,
@Param2 DATETIME,
@Param3 DATETIME,
@Param4 DATETIME,
@Param5 DATETIME,
@Param6 DATETIME,
@Param7 DATETIME,
@Param8 DATETIME,
@Param9 DATETIME
)
RETURNS DATETIME
AS
BEGIN
DECLARE @MaxDate DATETIME
SELECT @MaxDate = MAX(dates)
FROM
(
VALUES (@Param1),
(@Param2),
(@Param3),
(@Param4),
(@Param5),
(@Param6),
(@Param7),
(@Param8),
(@Param9)
) t(dates)
RETURN @MaxDate
END
GO
Verwendung von.
SELECT dbo.Greatest('2016.01.01', '2015.01.02', DEFAULT, DEFAULT, DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT) -- 2016-01-01
SELECT dbo.Greatest('2016.01.01', '2015.01.02', '2016.08.20', '2014.07.06', '2013.08.01','2012.01.01',DEFAULT,DEFAULT,DEFAULT) -- 2016-08-20
Können Sie etwas Code einfügen, den Sie ausprobiert haben? – owczarek
'wählen max (date_cl) aus ( \t wählen date_0 date_cl Vereinigung alle \t wählen Datum_1 Vereinigung alle \t .... \t wählen date_n ) x' – Praveen
Ich versuchte Tabelle Array. Das erwartet, Werte in die Funktion einzufügen. Aber ich muss diese Funktion von verschiedenen Prozeduren mit verschiedenen Werten aufrufen. –