Funciones Sql Server - Bases de Datos en Microsoft Sql Server 2014 (32-35)
Buen día amigos de IncanatoIt, continuamos en este curso de base de
datos en Microsoft Sql Server 2014, en este artículo trabajaremos con funciones
en sql server.
Puedes seguir el curso
Completo desde:
Puedes descargar el Material del Curso desde, Archivos del Curso, Backup y Presentaciones:
Programación Transact
SQL
Scripts
Procedimientos
Almacenados
Funciones
Triggers
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:
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ámetroN as
[Tipo Dato] = [ValorxDefecto])
RETURNS TipoDato_Returnado
AS
BEGIN
<Instrucciones>
RETURN Expresión_salida
END
Ejemplos
Ejemplo 1:
Implementar una
función que devuelva el promedio de dos números ingresados por el usuario.
--Evaluamos
primero si ya existe la función
--que
queremos implementar si ya existe la eliminamos
IF object_id('calcularpromedio') is not null
BEGIN
DROP FUNCTION dbo.calcularpromedio
END
go
--Implementamos
la función con dos parámetros de entrada
CREATE FUNCTION calcularpromedio
(@valor1 as decimal(10,2),@valor2 decimal(10,2))
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))
Ejemplo 2:
Implementar una
función que devuelva el nombre de un mes en letras según una fecha ingresada
por el usuario.
Tabla Pasajero - País - Pago
--Evaluamos primero si ya existe la función
--que
queremos implementar, si ya existe la eliminamos
IF object_id('fechaletras') is not null
BEGIN
DROP FUNCTION dbo.fechaletras
END
go
--Implementamos
la función con un solo parámetro de entrada
CREATE FUNCTION fechaletras (@fecha as DATE)
RETURNS varchar(20)
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:
Implementar una
función de tabla en línea que muestre los registros de la tabla pasajero
dependiendo del país de proveniencia.
Tabla Pasajero - País
--Evaluamos
primero si ya existe la función
--que
queremos implementar, si ya existe la eliminamos
IF object_id('pasajeroxpais') is not null
BEGIN
DROP FUNCTION dbo.pasajeroxpais
END
go
--Implementamos
la función con un solo parámetro de entrada
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
Funciones (32-35)
Bases de Datos en Microsoft Sql Server 2012
Funciones Sql Server - Bases de Datos en Microsoft Sql Server 2014 (32-35)
Reviewed by IncanatoIt-ad
on
10:30
Rating:
Que conviene en este caso una función o un procedimiento almacenado?
ResponderEliminarGracias excelente
ResponderEliminarHola Carlos eres exelente que Dios te bendiga
ResponderEliminarTengo un problema para descargar la Base de Datos
buenas tardes, haces unos excelentes vídeo y muy didácticos, me suscribí a tu canal y ver otros vídeos tuyos, y de paso tengo este problema en una función escalar, quizá me puedas ayudar por favor.
ResponderEliminar"Crear una función que permita ingresar dos parámetros, el cual digite un rango de meses,
mes 1 hasta el mes 7, la función debe devolver cuantos pacientes nacieron en estos
meses."