microTECHing
2Feb/132

Mínimo entre 2 números en SQL Server

Parece mentira pero es cierto... en SQL Server no tenemos ninguna función para saber el mínimo o máximo entre 2 números.

Podéis usar la alternativa del 'case when ...', pero si lo vais a utilizar bastante o queréis que el código sql quede un poco más legible, os recomendamos usar estas funciones de usuario.

Son unas funciones muy sencillas y es muy fácil usarlas.

Os dejamos una para el MIN y otra para el MAX, tanto para enteros (int) como para flotantes (float).

Aquí tenéis el código:


create function my_max(@val1 int, @val2 int)
returns int
as
begin
    if @val1 > @val2
        return @val1
    return isnull(@val2,@val1)
end
GO

create function my_min(@val1 int, @val2 int)
returns int
as
begin
    if @val1 < @val2
        return @val1
    return isnull(@val2,@val1)
end
GO


create function my_maxfloat(@val1 float, @val2 float)
returns float
as
begin
    if @val1 > @val2
        return @val1
    return isnull(@val2,@val1)
end
GO

create function my_minfloat(@val1 float, @val2 float)
returns float
as
begin
    if @val1 < @val2
        return @val1
    return isnull(@val2,@val1)
end
GO

Espero que os sea útil!

Etiquetado con: 2 Comentarios