SQL Server | Funciones definidas por el usuario

Una caracter铆stica muy importante de los Sistemas Gestores de Bases de Datos (SGBD), es la capacidad de procesar l贸gica de negocios relativa a los datos que maneja, es decir, si mantenemos la idea de un sistema bajo el modelo MVC, no se le estar铆an quitando funciones a la capa del controlador sino manteniendo la gesti贸n de datos dentro del Modelo de datos, es decir en el gestor de Base de Datos, ahora mismo vamos a explorar estas funcioes .

Funciones escalares:

Una funci贸n escalar devuelve un solo valor basado en los par谩metros de entrada.

Puedes crear una funci贸n escalar utilizando la siguiente sintaxis:

CREATE FUNCTION nombre_funcion (@parametro tipo_dato)
RETURNS tipo_dato_devuelto
AS
BEGIN
    -- L贸gica de la funci贸n
    RETURN valor_devuelto;
END;

Por ejemplo, aqu铆 hay una funci贸n escalar que calcula el 谩rea de un c铆rculo dado su radio:

CREATE FUNCTION calcular_area_circulo (@radio FLOAT) 
RETURNS FLOAT 
AS 
BEGIN 
DECLARE @area FLOAT; 
SET @area = 3.14159 * @radio * @radio; 
RETURN @area; 
END;

Puedes llamar a una funci贸n escalar en una consulta SQL de esta manera:

SELECT dbo.calcular_area_circulo(5.0) AS area;

Esto devolver谩 el 谩rea del c铆rculo con radio 5.0.

Funciones de tabla:

Una funci贸n de tabla devuelve un conjunto de resultados como una tabla virtual.

Puedes crear una funci贸n de tabla utilizando la siguiente sintaxis:

CREATE FUNCTION nombre_funcion (@parametro tipo_dato)
RETURNS TABLE
AS
RETURN (
    -- L贸gica de la funci贸n que genera los resultados de la tabla
    SELECT columna1, columna2, ...
    FROM tabla
    WHERE condicion
);

Por ejemplo, aqu铆 hay una funci贸n de tabla que devuelve los empleados con un salario mayor que cierto valor:

CREATE FUNCTION obtener_empleados_salario_superior (@salario_minimo INT)
RETURNS TABLE
AS
RETURN (
    SELECT *
    FROM Empleados
    WHERE salario > @salario_minimo
);

Puedes utilizar una funci贸n de tabla en una consulta SQL de esta manera:

SELECT * FROM dbo.obtener_empleados_salario_superior(50000);

Esto devolver谩 todos los empleados con un salario superior a 50000.

Recuerda que las funciones personalizadas en SQL Server pueden contener l贸gica m谩s compleja y realizar diversas operaciones seg煤n tus necesidades.

Deja una respuesta