🧚 Ascolta! Beekeeper Studio è una GUI per database veloce, moderna e open source Scarica
14 febbraio 2024 Di Matthew Rathbone

La sottrazione non serve solo per le operazioni numeriche! SQL Server offre diverse funzioni e operatori integrati per sottrarre sia numeri sia date. E, a differenza di quando lavori con carta e penna, devi sempre tenere a mente NULL. Vediamo subito qualche esempio.

Capire le operazioni di sottrazione in SQL Server

In SQL Server le operazioni di sottrazione entrano in gioco di solito in due situazioni: calcoli aritmetici su dati numerici e manipolazione di valori datetime. Sottrarre valori torna spesso utile quando devi generare valori calcolati direttamente in SQL Server.

Sottrazione di base

Partiamo da una semplice sottrazione per chiarire il concetto. Supponiamo di avere una tabella chiamata “Orders” che contiene “TotalAmount” e “DiscountAmount”.

SELECT TotalAmount, DiscountAmount, 
TotalAmount - DiscountAmount AS ActualAmount 
FROM Orders;

In questo esempio di base sottraiamo “DiscountAmount” da “TotalAmount” e restituiamo il risultato come “ActualAmount”.

Usare la sottrazione sugli intervalli di tempo

La sottrazione si usa spesso anche per calcolare la differenza tra due datetime. SQL Server ha diversi tipi di data e ora: smalldatetime, datetime, datetime2, datetimeoffset. Per sottrarre date possiamo usare la funzione DATEDIFF().

Esempio:

SELECT OrderID, OrderDate, 
DATEDIFF(day, OrderDate, GETDATE()) AS DaysElapsed 
FROM Orders;

Questo comando calcola e mostra il numero di giorni trascorsi da quando è stato effettuato ciascun ordine fino a oggi (GETDATE restituisce la data odierna).

Aggregare i result set con la sottrazione in SQL Server

In SQL Server è piuttosto comune anche aggregare i result set usando la sottrazione. Ad esempio, potresti dover sommare le vendite totali di un periodo e sottrarre gli sconti totali concessi nello stesso periodo.

Esempio:

SELECT 
( SELECT SUM(TotalAmount) FROM Orders where OrderDate like '2022-%' ) - 
( SELECT SUM(DiscountAmount) FROM Orders where OrderDate like '2022-%' ) as NetSales

Il comando qui sopra mostra le vendite nette del 2022 sottraendo gli sconti totali dalle vendite totali.

Gestire NULL

In SQL Server, sottrarre da NULL restituisce un valore NULL. Se preferisci trattare NULL come 0, è importante gestire questi casi per evitare NULL inattesi nei risultati. Non sempre è la scelta giusta, quindi valuta con attenzione.

SELECT OrderID, 
ISNULL(TotalAmount, 0) - ISNULL(DiscountAmount, 0) AS NetAmount 
FROM Orders;

Ora sei un esperto di sottrazioni

Esistono altri modi per sottrarre valori in modo efficace in SQL Server, quindi continua a sperimentare con questi comandi e prova a esplorare ancora per conto tuo. Ogni query che scrivi ti porta un passo più vicino a padroneggiare SQL Server. Buone query!

Questo articolo è stato scritto pensando a SQL Server. Tutti i comandi e le spiegazioni si riferiscono quindi a SQL Server. Per sapere come questi comandi funzionano su altri motori di database, consulta la documentazione ufficiale di quei database.

Beekeeper Studio è una GUI per database gratuita & open source

Il miglior strumento per query & editor SQL che abbia mai usato. Offre tutto ciò che mi serve per gestire il mio database. - ⭐⭐⭐⭐⭐ Mit

Beekeeper Studio è veloce, intuitivo e facile da usare. Beekeeper supporta tantissimi database e funziona alla grande su Windows, Mac e Linux.

La versione Linux di Beekeeper è completa al 100%, senza tagli e senza compromessi sulle funzionalità.

Cosa dicono gli utenti di Beekeeper Studio

★★★★★
"Beekeeper Studio ha sostituito completamente il mio vecchio workflow SQL. È veloce, intuitivo e rende di nuovo piacevole lavorare con i database."
— Alex K., Database Developer
★★★★★
"Ho provato tante GUI per database, ma Beekeeper trova l'equilibrio perfetto tra funzionalità e semplicità. Funziona e basta."
— Sarah M., Full Stack Engineer

Pronto a migliorare il tuo workflow SQL?

download Scarica gratis