SQL - Exercicios de Funcoes Completo
Por: 85santos • 28/9/2015 • Trabalho acadêmico • 1.127 Palavras (5 Páginas) • 1.138 Visualizações
FUNCTIONS
- 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)
- 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
- 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)
- 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')
- 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()
- Faça uma função que receba como parâmetro o nome do funcionário e ela retorne o nome dos dependentes desse funcionário.
if OBJECT_ID ('Exer6')is not null
drop function Exer6;
GO
CREATE FUNCTION Exer6(@nome varchar(50))
Returns table
AS
Return (Select D.Nome_Dep From Funcionario F left join Dependente D on F.Cod_Func = D.Cod_Func Where F.Nome_Func = @nome)
GO
Select * from dbo.Exer6 ('Celso Cesare')
- Faça uma função que receba como parâmetro de entrada o nome do cliente e retorne a somatória dos creditos dele.
if OBJECT_ID ('Exer7')is not null
...