Fun - PowerPoint PPT Presentation

1 / 20
About This Presentation
Title:

Fun

Description:

Fun es de Linha 17/04/06 – PowerPoint PPT presentation

Number of Views:132
Avg rating:3.0/5.0
Slides: 21
Provided by: dcc52
Category:
Tags: decade | fun

less

Transcript and Presenter's Notes

Title: Fun


1
Funções de Linha
  • 17/04/06

2
Funções de Linha
  • Gerar ou construir novo valor não existente na
    tabela inicial.
  • Valor construído a partir de dados de uma ou mais
    células da tabela original.
  • Todas essas células deve pertencer a uma única
    linha dentro da tabela.

3
Funções de Linha caso 1
  • Novo valor obtido de colunas assinaladas








Ex. SELECT nome nome-meio sobrenome AS NOME
FROM Pessoa WHERE matricula 73847
4
Função de Linha caso 2
  • Criação da coluna calculada

Mat, n1, n2, n3
Media
Mat, n1, n2, n3














A
SELECT n1 n2 n3 AS media FROM A WHERE
mat IN ( 3, 4 )
5
Funções de Linha
  •   -  Estrutura das funções de linha 
    -  Funções de manipulação de caracteres 
    -  Funções numéricas  -  Trabalhando com datas 
    -  Funções de datas  -  Aninhando funções 
    -  Funções gerais (NVL, nullif, coalesce, etc.) 
    -  Função case  -  Função decode 

6
Estrutura
  • SELECT
  • FUNCAO_LINHA (campo ,campo2,... ) FROM ....
  • WHERE ...
  • Usar na cláusula SELECT

7
Funções de datas no postgres
  • SELECT CURRENT_TIME
  • SELECT CURRENT_DATE
  • SELECT CURRENT_TIMESTAMP
  • SELECT CURRENT_TIMESTAMP(2)
  • SELECT LOCALTIMESTAMP
  • SELECT timeofday()
  • SELECT now()
  • SELECT TIMESTAMP 'now'

8
Tempo com meridiano
  • SELECT TIMESTAMP 'now' AT TIME ZONE 'BRT' (
    Brasil )
  • SELECT TIMESTAMP 'now' AT TIME ZONE 'AKST' (
    Alaska )
  • Table B.4. Time Zone Abbreviations for Input

9
Funções de Tempo
10
(No Transcript)
11
Funções de Tempo
  • Função OVERLAPS
  • Verificar se intervalos de tempo coincidem.
  • SELECT (DATE '2001-02-16', DATE '2001-12-21')
  • OVERLAPS
  • (DATE '2001-10-30', DATE '2002-10-30')
  • SELECT (DATE '2001-02-16', INTERVAL '100 days')
    OVERLAPS
  • (DATE '2001-10-30', DATE '2002-10-30')

12
Funções de Tempo
  • Extract
  • extrair parte de período de tempo
  • SELECT EXTRACT ( parametro FROM período)

13
EXTRACT- parâmetros
Century Século SELECT EXTRACT(CENTURY FROM TIMESTAMP '2001-02-16 203840')
Day Dia SELECT EXTRACT(DAY FROM TIMESTAMP '2001-02-16 203840')
Decade Década SELECT EXTRACT(DECADE FROM TIMESTAMP '2001-02-16 203840')
DOW Dia-semana (0-6) SELECT EXTRACT(DOW FROM TIMESTAMP '2001-02-16 203840')
DOY Dia-ano 1-365/366 SELECT EXTRACT(DOW FROM TIMESTAMP '2001-02-16 203840')
EPOCH Segundos desde 1970 SELECT EXTRACT(EPOCH FROM TIMESTAMP WITH TIME ZONE '2001-02-16 203840-08') SELECT EXTRACT(EPOCH FROM INTERVAL '5 days 3 hours') SELECT TIMESTAMP WITH TIME ZONE 'epoch' 982384720 INTERVAL '1 second'
14
EXTRACT- parâmetros
HOUR Hora (0-23) SELECT EXTRACT(HOUR FROM TIMESTAMP '2001-02-16 203840')
Millenium milênio SELECT EXTRACT(millenium FROM TIMESTAMP '2001-02-16 203840')
Milli Seconds Mili-segundos SELECT EXTRACT(milliseconds FROM TIMESTAMP '2001-02-16 203840')
Minute Minutos 0-59 SELECT EXTRACT(minute FROM TIMESTAMP '2001-02-16 203840') SELECT EXTRACT(minute FROM INTERVAL '5 days 3 hours')
Quarter quadrimestre SELECT EXTRACT(quarter FROM TIME '2001-02-16 ')
Second Segundos 0-59 SELECT EXTRACT(second FROM TIMESTAMP WITH TIME ZONE '2001-02-16 203840-08') SELECT EXTRACT(second FROM TIME WITH TIME ZONE 203840-08')
15
Função CASE
  • Estrutura análoga a estrutura IF/ELSE de
    linguagens de programação
  • Semelhança com SWITCH-CASE da linguagem C Ansi

16
Função CASE
  • SELECT campo1 ,
  • CASE campo1
  • WHEN valor1 THEN cmd
  • WHEN valor2 THEN cmd2
  • ELSE cmd3
  • END
  • FROM tabela1
  • SELECT vl_total_pedido ,
  • CASE vl_total_pedido
  • WHEN 200 THEN 'duzentos reais'
  • WHEN 800 THEN '800 reais'
  • ELSE 'outro valor'
  • END
  • FROM pedido

17
Funções NULLIF
18
Função COALESCE
19
Função DECODE
20
Referências
  • Manual do Postgres
  • B.2. Date/Time Key Words
  • Livro
  • PATRICK, J. SQL Fundamentos.
  • Cap. 9, 10 e 11
Write a Comment
User Comments (0)
About PowerShow.com