Funciones sql definidas por el usuario

En este ejemplo crearemos funciones básicas en sql. Describiendo un poco:

Al igual que las funciones de los lenguajes de programación, las funciones definidas por el usuario de SQL Server son rutinas que aceptan parámetros, realizan una acción, como un cálculo complejo, y devuelven el resultado de esa acción como un valor. El valor devuelto puede ser un valor escalar único o un conjunto de resultados.
Más informacion: Docs.Microsoft

La función es como una acción a ejecutar una vez se llame, pudiendo requerir valores para ejecutarse o simplemente ejecutarse para mostrar resultados.

Ejemplo creando función sin requerir valores sql:
--Creando funcion
CREATE FUNCTION Deps() 
RETURNS varchar(100) 
AS 
BEGIN 
       --Creando variable a devolver
    DECLARE @Nombre varchar(100)
       --Asignando Valores    
       set @Nombre=(select top 1 Departamento from Departamento ) 
    --Retornando Valor
       RETURN @Nombre 
END 


Para ejecutarla solo tendríamos que poner:
SELECT [dbo].[Deps] ()

Y Mostraría el primer departamento de la tabla Departamento

Ahora ejecutando una función que requiera valor lo único que cambiaría es asignarle la variable a la función, por ejemplo ejecutemos un contador de empleados por departamento, el sql seria este:
--Creando funcion
CREATE FUNCTION ContadorDeEmpleadosPorDep
(
--Creando Variables requeridas de funcion
@Nombre varchar(100)
) 
RETURNS varchar(100) 
AS 
BEGIN 
--Creando variable a devolver
    DECLARE @Return  varchar(100) 
    --Asignando Valores  
       set @Return= (select count(T0.id)[Contador] from empleado AS T0
       INNER JOIN Departamento T1 ON T0.iddep=T1.id
       where T1.Departamento LIKE @Nombre)
       --Retornando Valor
    RETURN @Return
END

Para ejecutarla solo tendríamos que poner:
--llamando                              Valor buscado
SELECT [dbo].[ContadorDeEmpleadosPorDep] ('IT')[Contador]

De esa manera podemos crear funciones sql .   

Funciones que quedan guardadas en BaseDeDatos>Programmability>Functions


SQL


Comentarios

Entradas más populares de este blog

Ejemplo de suma Pascal

Solucion al error collation desconocida: 'utf8mb4_0900_ai_ci'