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.
Programación Transact SQL
--Evaluamos primero si ya existe la función
Puedes seguir el curso Completo desde:
Puedes descargar el Material del Curso desde:
Archivos del Curso, Backup y Presentaciones http://adf.ly/pl1Bk
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:
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.
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
Saludos Imperio, un abrazo a la distancia.
Saludos Imperio, un abrazo a la distancia.
Funciones Sql Server - Bases de Datos en Microsoft Sql Server 2014 (32-35)
Reviewed by Juan Carlos Arcila Díaz
on
10:30
Rating:
Que conviene en este caso una función o un procedimiento almacenado?
ResponderEliminarGracias excelente
ResponderEliminar