Sie sind auf Seite 1von 10

FUNCIONES EN SQL

SERVER
Ing. Wiler Arturo Ponce Benites
2018
Funciones
Rutina almacenada que recibe unos parámetros escalares de
entrada, luego los procesa según el cuerpo definido de la
función y por último retorna un resultado de un tipo especifico
que permitirá cumplir un objetivo.
SQL Server proporciona numerosas funciones integradas y
permite crear funciones definidas por el usuario.
Tipos de Funciones

Funciones del Sistema:


Funciones definidas por el usuario
Funciones del Sistema:
SQL Server cuenta con una gran variedad de funciones dependiendo
de los valores o configuraciones que deseamos realizar, a
continuación mostramos algunas funciones del sistema:
Funciones de Agregado: SUM, AVG, COUNT, MAX, MIN
Funciones de Fecha y Hora: GETDATE, DAY, MONTH, YEAR,
DATEADD, DATEDIF, ISDATE
Funciones Matemáticas: ABS, RAND, LOG10, SQRT, POWER,
TAN, PI, RADIANS
Funciones definidas por el usuario:
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 (único o conjunto de valores).
Funciones - Sintáxis
Create Function Nombre_Función
(@parámetro1 as [Tipo Dato] = [ValorxDefecto],
@parámetro2 as [Tipo Dato] = [ValorxDefecto])
RETURNS TipoDato_Returnado
AS
BEGIN
<Instrucciones>
RETURN Expresión_salida
END
IF object_id('calcularpromedio') is not null
Ejemplos BEGIN
DROP FUNCTION dbo.calcularpromedio
END
go
Ejemplo 1: --Implementamos la función con dos parámetros de entrada
Implementar una función que devuelva el CREATE FUNCTION calcularpromedio
promedio de dos números ingresados por (@valor1 as decimal(10,2),@valor2 decimal(10,2))
el usuario. RETURNS decimal(10,2)
AS
BEGIN
DECLARE @resultado decimal(10,2)
SET @resultado=(@valor1+@valor2)/2
RETURN @resultado
END
GO
--Ejecutamos la función con un select y le enviamos los dos
parámetros de entrada (DBO es el nombre del propietario)
select dbo.calcularpromedio(12,13) as Promedio
--Ejecutamos la función con un print y le enviamos los dos
parámetros de entrada
print 'Promedio: ' + cast(dbo.calcularpromedio(12,13) as Char(10))
IF object_id('fechaletras') is not null
Ejemplo 2: BEGIN
DROP FUNCTION dbo.fechaletras
Implementar una función que END
devuelva el nombre de un mes GO
en letras según una fecha --Implementamos la función con un solo parámetro de entrada
ingresada por el usuario. CREATE FUNCTION fechaletras (@fecha as DATE)
RETURNS varchar(20)
Tabla Pasajero - País - Pago AS
BEGIN
DECLARE @resultado varchar(20)
SET @resultado = concat(day(@fecha),' de ‘,
datename(month,@fecha), ' del ‘, year(@fecha))
RETURN @resultado
END
GO
--Ejecutamos la función con un select y le enviamos el parámetro de
entrada
select dbo.fechaletras('2015-08-08') as [Fecha Actual]
select dbo.fechaletras(pag.fecha) as Fecha,
(pas.nombre + ' ' +pas.apaterno) as pasajero,
pag.tipo_comprobante,pag.num_comprobante
from pago pag inner join pasajero pas
on pag.idpasajero=pas.idpasajero
go
Ejemplo 3:
IF object_id('pasajeroxpais') is not null
Implementar una función de tabla en BEGIN
línea que muestre los registros de la DROP FUNCTION dbo.pasajeroxpais
tabla pasajero dependiendo del país END
de proveniencia. GO
--Implementamos la función con un solo parámetro de entrada
Tabla Pasajero - País CREATE FUNCTION pasajeroxpais (@pais as varchar(30))
RETURNS TABLE
AS
RETURN (SELECT pas.idpasajero,(pas.nombre + ' ' +
pas.apaterno) as Pasajero,pai.nombre as Pais
from pasajero pas inner join pais pai
on pai.idpais=pas.idpais
where pai.nombre=@pais)
GO
--Ejecutamos la función con un select, Mostraremos los
pasajeros del país Perú
select * from dbo.pasajeroxpais('Perú')
go

Das könnte Ihnen auch gefallen