200 likes | 304 Views
Funções de Linha. 17/04/06. 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. Funções de Linha – caso 1.
E N D
Funções de Linha 17/04/06
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.
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
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 )
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
Estrutura • SELECT FUNCAO_LINHA (campo [,campo2,...] ) FROM .... WHERE ... • Usar na cláusula SELECT
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';
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
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');
Funções de Tempo • Extract • extrair parte de período de tempo • SELECT EXTRACT ( parametro FROM período)
Função CASE • Estrutura análoga a estrutura IF/ELSE de linguagens de programação • Semelhança com SWITCH-CASE da linguagem C Ansi
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; Função CASE
Referências • Manual do Postgres : B.2. Date/Time Key Words • Livro PATRICK, J. SQL Fundamentos. Cap. 9, 10 e 11