T-SQL相当于Excel"MAX"函数返回两个数字中较大的一个

Sql*_*yan 9 t-sql sql-server excel

可能重复:
SQL Server中是否有Max函数需要两个值,如.NET中的Math.Max?

在Excel中,有一个名为"MAX"的函数接受数字并返回集合中最大的数字.T-SQL中是否有一个复制此功能的功能?我找不到一个,我写了一个为我做的UDF,但我觉得值得问.

这是我一直在使用的功能:

CREATE FUNCTION dbo.LargerOf
(
    -- Add the parameters for the function here
    @First FLOAT,
    @Second FLOAT
)
RETURNS FLOAT
AS
BEGIN

    DECLARE @Result FLOAT

    IF @First > @Second
        SET @result = @First
    ELSE
        SET @Result = @Second

    RETURN @Result

END
GO
Run Code Online (Sandbox Code Playgroud)

我不希望任何运气,但我认为我至少要问,而不是将我的功能转移到一大堆新服务器上.谢谢!

tek*_*ues 10

我不知道你需要的功能是否存在,但对于一种解决方法,我更喜欢这个

set @max = case when @first > @second then @first else @second end
Run Code Online (Sandbox Code Playgroud)

  • 为此使用UDF时要小心.有时简单地将代码封装在UDF中会导致性能问题,因为SQL Server必须逐行地对结果集进行操作,而内置函数通常可以在基于集合的基础上使用. (2认同)

Tor*_*gen 6

你可以使用:

CASE
   WHEN @First >= @Second THEN @FIRST
   ELSE @Second
END
Run Code Online (Sandbox Code Playgroud)