BD I - Aula 13 A - Funcoes de string datas numeros e conversao - parte 03
O documento discute funções SQL, incluindo funções de uma única linha para manipulação de caracteres, números e datas, e funções de várias linhas. Também aborda conversão de tipos de dados explícita e implícita.
Tópicos abordados
• FunçõesSQL;
• Funções de uma única linha;
• Funções de várias linhas;
• Funções de manipulação de caracteres;
• Funções de conversão maiúsculo /
minúsculo;
• Funções numéricas;
FUNÇÕES SQL
• Asfunções são um recurso avançado do SQL e
podem ser usadas para realizar:
– Executar cálculos usando dados;
– Modificar itens de dados individuais;
– Manipular saída para grupos de linhas;
– Formatar datas e números para exibição;
– Converter tipos de dados de coluna;
5.
FUNÇÕES SQL
• Asfunções SQL podem aceitar argumentos e
sempre retornar um valor;
• Há dois tipos de funções:
– Funções de uma única linha;
– Funções de várias linhas;
6.
FUNÇÕES DE UMAÚNICA
LINHA
• Essas funções operam somente linhas únicas e
retornam um resultado por linha. Há dois
tipos diferentes de funções de uma única
linha.
– Caractere;
– Número;
– Data;
– Conversão;
7.
FUNÇÕES DE VÁRIAS
LINHAS
•Essas funções manipulam grupos de linha a
fim de obter um resultado por grupo de
linhas.
8.
FUNÇÕES DE UMAÚNICA
LINHA
• Manipulam itens de dados;
• Aceitam argumentos e retornam um valor;
• Agem em cada linha retornada;
• Retornam um resultado por linha;
• Podem modificar o tipo de dados;
• Podem ser aninhadas;
9.
FUNÇÕES DE UMAÚNICA
LINHA
• Um argumento pode ser:
– Constante fornecida pelo usuário;
– Valor variável;
– Nome da coluna;
– Expressão;
10.
FUNÇÕES DE UMAÚNICA
LINHA
• Os recursos de funções de uma única linha:
– Atuam em cada linha retornada na consulta;
– Retornam um resultado por linha;
– Podem retornar um valor de dados de um tipo
diferente do mencionado;
– Podem esperar um ou mais argumentos;
– Podem ser usados em cláusulas SELECT, WHERE e
ORDER BY; podem ser aninhados;
11.
FUNÇÕES DE UMAÚNICA
LINHA
• Funções de caractere: aceitam entrada de
caractere e podem retornar valores de
número e caractere;
• Funções numéricas: aceitam entrada
numérica e reotrnam valores numéricos;
12.
FUNÇÕES DE UMAÚNICA
LINHA
• Funções de conversão: Convertem um valor
de tipo de dados para outro;
• Funções gerais:
– Função ISNULL;
– Função CASE;
13.
FUNÇÕES DE UMAÚNICA
LINHA
SELECT ISNULL(NULL,0);
SELECT
CASE DATA
WHEN '0' THEN 'ZERO'
WHEN '1' THEN 'UM'
END AS EXTENSO
FROM (SELECT 0 AS DATA
UNION ALL
SELECT 1 AS DATA ) AS TB;
14.
FUNÇÕES DE CARACTERE
•Podem ser divididas em duas características:
– Funções de conversão de maiúscula e minúscula;
• LOWER e UPPER
– Funções de manipulação de caractere;
• + (Concatenação), SUBSTRING, LEN, CHARINDEX, LEFT,
RIGHT, TRIM, LTRIM, RTRIM
15.
FUNÇÕES DE CONVERSÃO
DEMAIÚSCULAS /
MINÚSCULAS
• LOWER: Converte string de caracteres com
letras maiúsculas e minúsculas ou só
maiúsculas para letras minúsculas;
• UPPER: Converte string de caracteres com
letras maiúculas e minúsculas ou só
minúsculas para letras maiúsculas;
FUNÇÕES DE CONVERSÃO
DEMAIÚSCULAS /
MINÚSCULAS
USE HR
GO
SELECT UPPER(DEPARTMENT_NAME)
FROM DEPARTMENTS
WHERE UPPER(DEPARTMENT_NAME) LIKE '%A%';
GO
18.
FUNÇÕES DE
MANIPULAÇÃO DE
CARACTERE
•+ (concatenar), SUBSTRING, LEN, CHARINDEX,
LEFT, RIGHT e TRIM, LTRIM e RTRIM são
funções de manipulação de caractere;
• + (concatenar): Une valores de junção;
• SUBSTRING: Extrai uma string de determinado
tamanho;
SELECT 'NEW' + 'YORK'
SELECT SUBSTRING('NEW YORK',1,1);
19.
FUNÇÕES DE
MANIPULAÇÃO DE
CARACTERE
•LEN: Exibe o tamanho de uma string como um
valor numérico;
• CHARINDEX: Localiza a posição numérica do
caractere nomeado;
• LEFT e RIGHT: Pega uma substring com o
tamanho especificado do lado especificado;
• REPLICATE: Preenche o valor de caractere com
uma determinada quantidade;
20.
FUNÇÕES DE
MANIPULAÇÃO DE
CARACTERE
SELECTLEN('NEW YORK');
SELECT CHARINDEX('Y','NEW YORK',0)
SELECT LEFT('NEW YORK',2)
SELECT RIGHT('NEW YORK',2)
SELECT REPLICATE('0',5);
21.
FUNÇÕES DE
MANIPULAÇÃO DE
CARACTERE
•TRIM, LTRIM e RTRIM: Tira caracteres em
branco de ambos lados, ou só da esquerda ou
só da direita da string;
SELECT TRIM(' NEW YORK ')
SELECT LTRIM(' NEW YORK ')
SELECT RTRIM(' NEW YORK ')
22.
FUNÇÕES DE
MANIPULAÇÃO DE
CARACTERE
USEHR
GO
SELECT LAST_NAME + ' ' + FIRST_NAME,
LEN(LAST_NAME),
CHARINDEX('J', FIRST_NAME,2)
FROM EMPLOYEES
WHERE SUBSTRING(FIRST_NAME,1,2) = 'JO'
GO
23.
FUNÇÕES NUMÉRICAS
• ROUND:Arredonda valor para determinado
decimal;
ROUND(45.926,2) 45.93
• TRUNC: Trunca valor para determinado
decimal;
ROUND(45.926,2,1) 45.92
• MOD: Retorna o restante da divisão;
SELECT 1600 % 300 100
TRABALHANDO COM DATAS
•O SQL Server armazena datas em um formato
numérico interno: ano, mês, dia, horas,
minutos, segundo, centesimos de segundo;
• O formato de data default é YYYYMMDD;
• GETDATE() é uma função de retorno de data e
hora;
• O SQL Server não exige uma tabela para se
fazer uma select;
ARITMÉTICA COM DATAS
•Para adicionar ou subtrair dias de uma data,
Podemos utilizer mais ou menos a quantidade
de dias;
SELECT GETDATE() + 5
SELECT GETDATE() - 2
28.
USANDO OPERADORES
ARITMÉTICOS COMDATAS
--ADICIONANDO OU SUBTRAINDO ANO, MESES, DIAS
SELECT DATEADD(YYYY,1,GETDATE())
SELECT DATEADD(YYYY,-1,GETDATE())
SELECT DATEADD(MM,1,GETDATE())
SELECT DATEADD(DD,1,GETDATE())
--ADICIOMANDO UMA SEMANA
SELECT DATEADD(WK,1,GETDATE())
--ADICIMANDO HORAS, MINUTOS E SEGUNDOS
SELECT DATEADD(HH,1,GETDATE())
SELECT DATEADD(MI,1,GETDATE())
SELECT DATEADD(SS,1,GETDATE())
29.
FORMATANDO DATAS
• Épossivel fazer formatação em alguns padrões
existentes no SQL Server:
--FORMATACAO DE DADOS NO SQL SERVER
SELECT CONVERT(VARCHAR(10), GETDATE(), 101)
SELECT CONVERT(VARCHAR(10), GETDATE(), 102)
SELECT CONVERT(VARCHAR(10), GETDATE(), 103)
Referência: https://docs.microsoft.com/pt-br/sql/t-
sql/functions/cast-and-convert-transact-sql?view=sql-server-ver15
30.
CONVERSÃO IMPLÍCITA
DE TIPOSDE DADOS
• O SQL Server consegue fazer a conversão de
dados para o usuário, sem que ele (usuário)
precise fazer intervenção através de funções;
31.
CONVERSÃO EXPLICITA
DE TIPOSDE DADOS
• É quando o usuário faz a conversão de dados
utilizando commandos do T-SQL, a qual o SQL
Server executa imeditamente o commando
sem precisar interpreta;
• Sempre que possível utilize conversão de
dados explicita;
32.
CONVERSÃO EXPLÍCITA DE
TIPODE DADOS
CAST e CONVERT são os comandos para
transformer um dado em outro tipo;
-- CAST Syntax:
CAST ( expression AS data_type [ ( length ) ] )
-- CONVERT Syntax:
CONVERT ( data_type [ ( length ) ] , expression [ , style ] )
33.
CONVERSÃO EXPLÍCITA DE
TIPODE DADOS
-- INTEIRO PARA CHAR
SELECT CAST(1 AS VARCHAR)
--VARCHAR PARA INTEIRO
SELECT CAST('10' AS INTEGER)
--INTEIRO PARA VARCHAR
SELECT CONVERT(VARCHAR, 1)
--VARCHAR PARA INTEIRO
SELECT CONVERT(INT, '20')
--VARCHAR PARA DATA
SELECT CAST('20191030' AS DATE)
--DATA PARA VARCHAR
SELECT CAST( CAST('20191030' AS DATE) AS VARCHAR)
--MONETARIO PARA VARCHAR
SELECT CAST(1001.23 AS VARCHAR)
--VARCHAR PARA MONETARIO
SELECT CAST('1001.23' AS MONEY)