Iremos conhecer as técnicas:
1\. Definir referência de coluna (ALIAS):
- No SQL Server, é possível atribuir um nome alternativo a uma coluna usando um alias. Isso pode ser útil para tornar o resultado da consulta mais legível.
SELECT NomeCliente AS Cliente
FROM TabelaClientes;
2\. Converter tipo de dados texto para data (CONVERT):
- Use a função CONVERT para converter dados de texto em formato de data.
SELECT CONVERT(DATE, '2023-01-01') AS DataConvertida;
3\. Obter parte da data (DATEPART, YEAR, MONTH):
- Utilize a função DATEPART para extrair partes específicas de uma data, como ano ou mês.
SELECT DATEPART(YEAR, DataNascimento) AS Ano
FROM TabelaClientes;
4\. Agregar valores (GROUP BY):
- A cláusula GROUP BY é utilizada para agregar valores com base em uma ou mais colunas.
SELECT Departamento, AVG(Salario) AS MediaSalario
FROM TabelaFuncionarios
GROUP BY Departamento;
5\. Sub-consulta (SUBQUERY):
- Uma subconsulta é uma consulta aninhada dentro de outra. Pode ser usada para recuperar dados que serão utilizados na condição da consulta principal.
SELECT Nome
FROM TabelaClientes
WHERE ID IN (SELECT ClienteID FROM TabelaPedidos);
6\. Função de janela OVER com ROWS de valores fixos (PRECEDING, FOLLOWING):
- A função de janela OVER é usada para realizar cálculos em um conjunto ordenado de linhas relacionadas. As cláusulas PRECEDING e FOLLOWING especificam um intervalo fixo de linhas antes ou depois da linha atual.
SELECT Nome, Salario, SUM(Salario) OVER (ORDER BY DataContratacao ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING) AS SomaSalario
FROM TabelaFuncionarios;
7\. Função de janela OVER, PARTITION com ROWS de valores dinâmicos (UNBOUNDED PRECEDING, CURRENT ROW):
- A cláusula PARTITION divide o conjunto de resultados em partições às quais a função de janela é aplicada. UNBOUNDED PRECEDING e CURRENT ROW são usados para definir o intervalo de linhas dinamicamente.
SELECT Nome, Departamento, Salario, AVG(
Salario) OVER (PARTITION BY Departamento ORDER BY DataContratacao ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS MediaSalario
FROM TabelaFuncionarios;
Esses conceitos são fundamentais para consultas avançadas no Microsoft SQL Server, proporcionando flexibilidade e poder analítico.