在SQL Server上,如何从几个变量中找到MAX或MIN值

Lum*_*mpi 6 sql-server max

我刚刚发现SQL中的MAX()函数只适用于列.

有没有类似的功能我可以用来找到例如这四个变量的最大值?

SET @return = MAX(@alpha1, @alpha2, @alpha3, @alpha4)
Run Code Online (Sandbox Code Playgroud)

或者我必须先将它们放在一列中(然后首先创建一个表...... ;-()?

问候

Lumpi

Igo*_*nko 10

T-SQL中没有内置函数,但您可以使用以下内容

SELECT @result = MAX(alpha)
FROM   (SELECT @alpha1
        UNION ALL
        SELECT @alpha2
        UNION ALL
        SELECT @alpha3) T(alpha);  
Run Code Online (Sandbox Code Playgroud)

或(SQL Server 2008+)

SELECT @result = MAX(alpha)
FROM  (VALUES(@alpha1),
             (@alpha2),
             (@alpha3)) T(alpha);  
Run Code Online (Sandbox Code Playgroud)

  • @Lumpi - 另类2我认为你的意思?Row Value Construcvtors直到那个版本才被引入. (3认同)