Iremos conhecer as técnicas:
1\. Criar tabela de constantes (VALUES):
- A cláusula VALUES é usada para criar uma tabela de constantes no SQL Server. Pode ser útil para fornecer conjuntos de valores específicos em uma consulta.
Exemplo:
SELECT *
FROM (VALUES (1, 'Valor1'), (2, 'Valor2'), (3, 'Valor3')) AS TabelaExemplo (Coluna1, Coluna2);
2\. Contar quantidade de dias entre datas (DATEDIFF, DAY):
- A função DATEDIFF é usada para calcular a diferença entre duas datas em unidades específicas, como dias. O exemplo abaixo conta a quantidade de dias entre duas datas.
Exemplo:
SELECT DATEDIFF(DAY, DataInicio, DataFim) AS QuantidadeDias
FROM TabelaExemplo;
3\. Converter tipo de dados texto para data (CAST, DATETIME):
- A função CAST é usada para converter um tipo de dados para outro. Neste caso, estamos convertendo uma string em uma data.
Exemplo:
SELECT CAST('2023-01-01' AS DATETIME) AS DataConvertida;
4\. Comparar valores entre os registros (CROSS APPLY):
- A cláusula CROSS APPLY pode ser usada para aplicar uma subconsulta a cada linha do conjunto de resultados principal, permitindo a comparação entre valores de registros diferentes.
Exemplo:
SELECT A.Coluna1, B.Coluna2
FROM TabelaA A
CROSS APPLY (SELECT TOP 1 Coluna2 FROM TabelaB WHERE Coluna1 = A.Coluna1) AS B;
5\. Expressão de tabela Comum (CTE):
- A Expressão de Tabela Comum (CTE) é uma forma de criar uma tabela temporária dentro de uma consulta. Pode ser referenciada várias vezes na mesma consulta.
Exemplo:
WITH CTEExemplo (Coluna1, Coluna2) AS (
SELECT Col1, Col2 FROM TabelaOrigem WHERE Condicao
)
SELECT * FROM CTEExemplo;
6\. Identificar férias e contar dias em conflito (CASE, WHEN, DATEDIFF):
- O uso de CASE e WHEN permite a identificação de férias ou dias específicos para contagem de dias em conflito.
Exemplo:
SELECT *,
CASE WHEN DataInicio BETWEEN '2023-01-01' AND '2023-01-10' THEN 'Férias' ELSE 'Trabalho' END AS StatusDia
FROM TabelaExemplo;
7\. Filtrar registros (WHERE, CONDITIONAL):
- A cláusula WHERE é utilizada para filtrar registros com base em condições específicas. O exemplo a seguir filtra registros onde uma condição é atendida.
Exemplo:
SELECT *
FROM TabelaExemplo
WHERE Coluna1 > 10;
Esses conceitos no SQL Server proporcionam uma variedade de funcionalidades, desde a manipulação de dados até a aplicação de lógicas condicionais e a criação de estruturas temporárias para facilitar consultas mais complexas.