Continuação da revisão sobre os principais comandos do SQL Server:
- Distinct: remove registros repetidos.
SELECT DISTINCT EMBALAGEM, TAMANHO
FROM [TABELA DE PRODUTOS]
GO
- Order By: Alterando a ordem em que os registros são exibidos. O comando ASC torna a ordem ascendente e DESC (descendente -> do maior para o menor).
SELECT *
FROM [TABELA DE PRODUTOS]
ORDER BY [PREÇO DE LISTA] DESC
GO
Pode-se ordenar as colunas por mais de um critério:
SELECT [EMBALAGEM], [NOME DO PRODUTO]
FROM [TABELA DE PRODUTOS]
ORDER BY [EMBALAGEM] DESC, [NOME DO PRODUTO] ASC
GO
- Group by: Utilizado para fazer agrupamentos. Este comando deve ser utilizado em conjunto com uma função. Exemplos de função são: SUM (soma), AVG (média), MIN (mínimo), MAX (máximo), COUNT (contador).
SELECT ESTADO, SUM([LIMITE DE CREDITO])
FROM [TABELA DE CLIENTES] GROUP BY ESTADO
GO
Sempre que for utilizar fórmula ou função dentro da especificação do SELECT, e conter um agrupamento, esta função ou fórmula deve fazer parte do GROUP BY:
SELECT YEAR(DATA), COUNT(*)
FROM [NOTAS FISCAIS]
GROUP BY YEAR(DATA)
GO
- Having: Permite filtrar dados agrupados (utilizando o group by).
SELECT BAIRRO, ESTADO, SUM([LIMITE DE CREDITO]) AS SOMA_LIMITE FROM [TABELA DE CLIENTES]
WHERE [ESTADO] = 'SP'
GROUP BY BAIRRO, ESTADO HAVING SUM([LIMITE DE CREDITO]) >= 140000
GO
O comando having pode ainda ser utilizado em condições compostas:
SELECT EMBALAGEM, MAX([PREÇO DE LISTA]), MIN([PREÇO DE LISTA]) FROM [TABELA DE PRODUTOS]
GROUP BY EMBALAGEM HAVING SUM([PREÇO DE LISTA]) <= 80 AND MAX([PREÇO DE LISTA]) >= 6
GO
- Case/then/else/end: Utiliza condições para classificar resultados. Exemplo a seguir: Classifique os produtos em CAROS (preço maior que 12), EM CONTA (preço entre 7 e 12) ou BARATOS (preço menor que 7).
SELECT [NOME DO PRODUTO],
CASE WHEN [PREÇO DE LISTA] >= 12 THEN 'PRODUTO CARO'
WHEN [PREÇO DE LISTA] >= 7 AND [PREÇO DE LISTA] < 12 THEN 'PRODUTO EM CONTA'
ELSE 'PRODUTO BARATO'
END
FROM
[TABELA DE PRODUTOS]
GO