创建可以接收多种类型参数的函数
Create function that can receive arguments of multiple types
我需要创建函数来查找两个值中较小的一个。它应该接收 INT 或 TIME 类型的参数。这种结构的东西:
CREATE FUNCTION fn_Min(@p_1 (time or int), @p_2 (time or int))
RETURNS time
AS
BEGIN
DECLARE @lesser (time or int)
IF @p_1 <= @p_2
SET @lesser = @p_1
ELSE
SET @lesser = @p_2
RETURN @lesser
END
可以吗?
你可以使用sql_variant
函数
CREATE FUNCTION fn_Min(@p_1 sql_variant, @p_2 sql_variant)
RETURNS sql_variant
AS
BEGIN
DECLARE @lesser sql_variant
IF @p_1 <= @p_2
SET @lesser = @p_1
ELSE
SET @lesser = @p_2
RETURN @lesser
END
致电
SELECT dbo.fn_Min(CAST('3:00 AM' AS TIME),CAST('11:00 AM' AS TIME))
SELECT dbo.fn_Min(5,6)
我需要创建函数来查找两个值中较小的一个。它应该接收 INT 或 TIME 类型的参数。这种结构的东西:
CREATE FUNCTION fn_Min(@p_1 (time or int), @p_2 (time or int))
RETURNS time
AS
BEGIN
DECLARE @lesser (time or int)
IF @p_1 <= @p_2
SET @lesser = @p_1
ELSE
SET @lesser = @p_2
RETURN @lesser
END
可以吗?
你可以使用sql_variant
函数
CREATE FUNCTION fn_Min(@p_1 sql_variant, @p_2 sql_variant)
RETURNS sql_variant
AS
BEGIN
DECLARE @lesser sql_variant
IF @p_1 <= @p_2
SET @lesser = @p_1
ELSE
SET @lesser = @p_2
RETURN @lesser
END
致电
SELECT dbo.fn_Min(CAST('3:00 AM' AS TIME),CAST('11:00 AM' AS TIME))
SELECT dbo.fn_Min(5,6)