FUNCIÓN: Una funcion es una porción de codigo que puede ser reutilizada por diferentes programas. Las funciones, como en programacion, devuelven un valor, que pueden ser en este caso una escalar o un dato estructurado. Por ejemplo el numero de alumnos matriculados, o una tabla que contiene la lista de todos los alumnos matriculados en determinado ciclo.
A continuación mostraremos algunos ejemplos:
-- CREA LA FUNCION CANT_PARTICIPANTES DEVUELVE EL NUMERO DE PARTICIPANTES INSCRITOS EN EL CAMPEONATO
-- AJEDREZ
CREATE FUNCTION CANT_PARTICIPANTES()
RETURNS INT
AS
BEGIN
DECLARE @CANT INT
SELECT @CANT = COUNT(*) FROM PARTICIPANTE
RETURN @CANT
END
CREATE FUNCTION LIST_PARTICIPANTES()
RETURNS TABLE -- en este caso retorna una tabla
AS
RETURN (SELECT * FROM PARTICIPANTE)
-- ejecutamos las funciones
SELECT dbo.CANT_PARTICIPANTES() 'CANT PARTICIPANTES'
SELECT * FROM LIST_PARTICIPANTES()
Nombramos la columna resultante de la primera consulta como : CANT PARTICIPANTES
El resultado es el siguiente:
Ahora mostraremos mas ejemplos pero en la base de datos: Campeonato...
-- Creamos una funcion que devuelva el numero de equipos --- en los que jugo un determinado jugador
create function num_equip_de_jug(@c_jugador char(3))
returns int
as
begin
declare @num_equip int
select @num_equip = COUNT(*) from JUG_X_EQ_X_CAMP jec where jec.C_JUGADOR = @c_jugador
return @num_equip
end
-- Esta funcion devuelve una tabla con la lista de todos los equipos en los que jugó un jugador
create function list_equip(@cod_jugador char(3))
returns table
as
-- con la clausula distinc evitamos las repeticiones
return (select distinct (C_EQUIPO) from JUG_X_EQ_X_CAMP where C_JUGADOR = @cod_jugador)
--probamos las funciones
select * from dbo.list_equip('J01')
select dbo.num_equip_de_jug('J01') 'Num Equip por Jugador'
Ahora veremos los procedimientos almacenados
No hay comentarios:
Publicar un comentario