一千萬個為什麽

搜索

在存儲過程MySQL中查找輸入值的最小值/最大值

有沒有簡單的方法可以在存儲過程中的輸入值集中找到最小值/最大值?

例如:

delimiter $$
create procedure extremevalues ( in a1 int, in a2 int , 
                                 in a3 int, in a4 int, 
                                 in a5 int, min_a int, max_a int)
begin
set max_a:=.... ;
set min_a:=.... ;
select max_a, min_a;
end$$

我知道在使用表時,可以在select語句中使用聚合函數 max()min()

我找不到任何類似問題的參考。

謝謝。

最佳答案

set @a:=1, @b:=2, @c:=3;
set @max:=greatest(@a, @b, @c);
set @min:=least(@a, @b, @c);
select @max, @min;

適合SP,

delimiter $$
create procedure extremevalues ( in a1 int, in a2 int ,
                                 in a3 int, in a4 int,
                                 in a5 int, min_a int, max_a int)
begin
set max_a:=greatest(a1, a2, a2, a3, a4, a5);
set min_a:=least(a1, a2, a2, a3, a4, a5);
select max_a, min_a;
end$$

轉載註明原文: 在存儲過程MySQL中查找輸入值的最小值/最大值