提问人:Lumpi 提问时间:10/13/2011 最后编辑:marc_sLumpi 更新时间:10/13/2011 访问量:4733
在 SQL Server 上,如何从几个变量中查找 MAX 或 MIN 值
On SQL Server, how to find the MAX or MIN value out of a couple of variables
问:
我刚刚发现 SQL 中的 MAX() 函数仅适用于列。
我是否可以使用类似的函数来从这四个变量中查找最大值?
SET @return = MAX(@alpha1, @alpha2, @alpha3, @alpha4)
或者我必须先把它们放在一列中(从而先创建一个表......;-( )?
问候
隆比
答:
10赞
Igor Borisenko
10/13/2011
#1
T-SQL 中没有用于此目的的内置函数,但可以使用以下内容
SELECT @result = MAX(alpha)
FROM (SELECT @alpha1
UNION ALL
SELECT @alpha2
UNION ALL
SELECT @alpha3) T(alpha);
或 (SQL Server 2008+)
SELECT @result = MAX(alpha)
FROM (VALUES(@alpha1),
(@alpha2),
(@alpha3)) T(alpha);
评论
0赞
Lumpi
10/13/2011
谢谢!为什么备选方案 1 不适用于较早的 SQl 服务器版本?
3赞
Martin Smith
10/13/2011
@Lumpi - 备选方案 2 我想你的意思是?直到该版本才引入行值构造器。
0赞
Roman Pekar
11/12/2014
我真的很想念 Postgress - postgresql.org/docs/current/static/functions-conditional.html 的功能。阅读和使用它们要容易得多......least()
greatest()
评论