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.