Exercicios de Funcoes Completo
1. Faça uma função que receba 2 números e retorne a divisão dos dois.
IF OBJECT_ID ('Exer1') IS NOT NULL DROP FUNCTION Exer1;
GO
Create function Exer1(@numero1 decimal(10,2), @numero2 decimal(10,2)) returns decimal(10,2) as begin return (select @numero1 / @numero2) end GO select dbo.Exer1 (10,3)
2. Faça uma função que receba um código de um cliente e uma porcentagem a ser aumentado no salário do cliente. O retorno deve ser o salário do cliente com o aumento da porcentagem passado como parâmetro.
IF OBJECT_ID ('Exer2') IS NOT NULL DROP FUNCTION Exer2;
GO
Create function Exer2(@codigo integer, @porcentagem decimal(10,2)) returns decimal(10,2) as begin return (select Renda_Cli=Renda_Cli+Renda_Cli*@porcentagem/100 from cliente where cod_cli = @codigo) end GO select dbo.Exer2(5,10) as NovaRenda
3. Faça uma função que receba o código do cliente como parâmetro e retorne a quantidade de emails e a quantidades de telefones que esse cliente possua. if OBJECT_ID ('Exer3')is not null drop function Exer3;
GO
Create function Exer3 (@cod integer) returns table as return (select 'fone' as tipo, count(cod_cli) as qtd from Fone where Cod_cli = @cod union select 'email', count(cod_cli) from Email where Cod_cli = @cod)
GO
Select * from dbo.Exer3(1)
4. Faça uma função que você passe como parâmetro o sexo do cliente e receba como retorno a média do salário do sexo digitado. if OBJECT_ID ('Exer4')is not null drop function Exer4;
GO
Create function Exer4 (@sexo varchar(1)) returns decimal(10,2) as begin return (Select avg (Renda_Cli) From Cliente Where Sexo_Cli = @sexo) end GO
Select dbo.Exer4('M')
5. Faça uma função que não receba nenhum parâmetro e retorne a média de salário agrupados por sexo. if OBJECT_ID ('Exer5')is not null drop function Exer5;
GO
Create function Exer5() returns table as return (Select avg (Renda_Cli) as media, Sexo_Cli From Cliente group by sexo_cli)
GO
Select * from dbo.Exer5()
6. Faça uma função que receba como