Material
  • Material de Banco de Dados
  • Introdução
    • Bancos de Dados
    • Relacional Versus Não Relacional
    • SQL e NoSQL (Não SQL)
    • ACID, CAP e BASE
  • Fundamentos
    • Abstração
    • Modelos de Dados
    • MER e DER
    • Cardinalidades
    • Formas Normais
    • Propriedades ACID
    • Álgebra Relacional
      • Portal para praticar
      • Script para criar o banco de dados
      • Exercício
      • Respostas - Álgebra Relacional
  • Linguagem SQL
    • Linguagens de Banco de Dados
    • CREATE
    • INSERT
    • UPDATE
    • DELETE
    • SELECT
    • VIEW
    • FUNÇÕES
    • PROCEDURES
    • CURSORES
    • TRANSAÇÕES
    • TRIGGERS
    • INDICES
    • CTE
  • Exercícios SQL
    • EXERCÍCIOS Parte 1
    • EXERCÍCIOS Parte 2
    • EXERCÍCIOS Parte 3
    • EXERCÍCIOS Procedure
    • EXERCÍCIOS Procedure - Resolução
  • Tópicos Avançados
    • Novas Tecnologias de armazenamento de dados
      • NoSQL
      • CAP e BASE
      • Big Data
    • Arquiteto de Dados
    • Engenheiro de Dados
    • Cientista de Dados
  • Extras
    • Download SQL Server 2017 e SSMS
    • Instalar SQL Server 2017
    • Instalar SSMS
    • Documentação dos SGBD
  • Canal no Youtube
Powered by GitBook
On this page
  1. Linguagem SQL

FUNÇÕES

  • Uma função é uma sequência de comandos que executa alguma tarefa e que tem um nome. A sua principal finalidade é nos ajudar a organizar programas em pedaços que correspondam a como imaginamos uma solução do problema.

Exemplo de um Função Simples:

CREATE FUNCTION fnRetornaAno (@data DATETIME)
RETURNS int
AS
  BEGIN
  DECLARE @ano int
  SET @ano = YEAR(@data)

      RETURN @ano

END
  • Chamada ou execução da função (não esqueça de usar o dbo. antes do nome da função)

SELECT dbo.fnRetornaAno(GETDATE())

SELECT dbo.fnRetornaAno(Clientes.ClienteNascimento) FROM dbo.Clientes

Exemplo de um Função que retorna uma tabela:

CREATE FUNCTION clientesApos(@dt datetime)
RETURNS TABLE
AS
RETURN (SELECT *
        FROM  Clientes
        WHERE ClienteNascimento >= @dt)

Exemplo de execução

SELECT * FROM CLIENTES 
INNER JOIN 
clientesApos('1980-01-01') AS FN
ON CLIENTES.CLIENTENASCIMENTO=FN.CLIENTENASCIMENTO

Exemplo de um Função com mais de um parâmetro de entrada:

CREATE FUNCTION DtsMinutos(@min int, @dti datetime, @dtf datetime)
RETURNS @tbl TABLE(dt datetime)
AS
BEGIN
    WHILE @dti <= @dtf
    BEGIN
      INSERT INTO @tbl(dt) VALUES (@dti)
      SET @dti = DATEADD(MINUTE,@min,@dti)
    END      
    RETURN
END

Exemplo de execução da função

select * from DtsMinutos(1,getdate(),getdate()+1)

Outros tipos de funções

PreviousVIEWNextPROCEDURES

Last updated 1 year ago

https://www.w3schools.com/sql/sql_ref_sqlserver.asp