Subtração não serve só para operações numéricas! O SQL Server tem várias funções e operadores nativos para ajudar na subtração de números e datas. Além disso, ao contrário do que acontece com papel e caneta, precisamos sempre pensar no NULL. Vamos direto aos exemplos.
Entendendo as operações de subtração no SQL Server
As operações de subtração no SQL Server costumam aparecer em duas situações: aritmética com dados numéricos e manipulação de valores de data e hora. Subtrair valores é muito útil quando você precisa gerar valores calculados diretamente no SQL Server.
Subtração básica
Vamos começar com uma operação de subtração simples para ilustrar o conceito. Suponha que temos uma tabela chamada “Orders” contendo “TotalAmount” e “DiscountAmount”.
SELECT TotalAmount, DiscountAmount,
TotalAmount - DiscountAmount AS ActualAmount
FROM Orders;
Neste exemplo básico, subtraímos “DiscountAmount” de “TotalAmount” e exibimos o resultado como “ActualAmount”.
Usando operações de subtração em intervalos de tempo
A subtração também é muito usada para calcular a diferença entre duas datas e horas. O SQL Server tem vários tipos de data e hora: smalldatetime, datetime, datetime2, datetimeoffset. Podemos usar a função DATEDIFF() para subtrair datas.
Exemplo:
SELECT OrderID, OrderDate,
DATEDIFF(day, OrderDate, GETDATE()) AS DaysElapsed
FROM Orders;
Este comando calcula e exibe o número de dias decorridos desde que cada pedido foi feito até hoje (GETDATE retorna a data de hoje).
Agregando conjuntos de resultados com subtração no SQL Server
Agregar conjuntos de resultados usando subtração também é bastante comum no SQL Server. Por exemplo, você pode precisar somar o total de vendas de um período e subtrair o total de descontos concedidos no mesmo período.
Exemplo:
SELECT
( SELECT SUM(TotalAmount) FROM Orders where OrderDate like '2022-%' ) -
( SELECT SUM(DiscountAmount) FROM Orders where OrderDate like '2022-%' ) as NetSales
O comando acima exibe as vendas líquidas do ano de 2022 subtraindo o total de descontos do total de vendas.
Lidando com NULL
No SQL Server, subtrair de NULL retorna um valor NULL. É importante tratar esses casos para evitar NULLs inesperados nos seus resultados, caso você prefira tratar NULL como 0. Isso nem sempre é o desejado, então aja com cuidado.
SELECT OrderID,
ISNULL(TotalAmount, 0) - ISNULL(DiscountAmount, 0) AS NetAmount
FROM Orders;
Agora você é um profissional da subtração
Existem outras formas eficientes de subtrair valores no SQL Server, então continue praticando com esses comandos e explore mais por conta própria. Cada consulta que você escreve deixa você um passo mais perto de dominar o SQL Server. Boas consultas!
Este artigo foi escrito pensando no SQL Server. Portanto, todos os comandos e explicações se referem ao SQL Server. Para saber como esses comandos funcionam em outros bancos de dados, consulte a documentação oficial de cada um.
Beekeeper Studio é um cliente de banco de dados gratuito e open source
A melhor ferramenta de consultas e edição de SQL que já usei. Tem tudo o que preciso para gerenciar meu banco de dados. - ⭐⭐⭐⭐⭐ Mit
O Beekeeper Studio é rápido, intuitivo e fácil de usar. Ele suporta vários bancos de dados e funciona muito bem no Windows, Mac e Linux.
O que os usuários dizem sobre o Beekeeper Studio
"O Beekeeper Studio substituiu completamente meu antigo fluxo de trabalho com SQL. É rápido, intuitivo e torna o trabalho com bancos de dados agradável de novo."
"Já testei muitas GUIs de banco de dados, mas o Beekeeper encontra o equilíbrio perfeito entre recursos e simplicidade. Simplesmente funciona."