- SQL Chips and Chunks Newsletter
- Posts
- Week 19 - SQL Chips and Chunks Newsletter
Week 19 - SQL Chips and Chunks Newsletter
The Power of COALESCE
1. SQL Chip: COALESCE
is a simple but powerful function that helps you handle missing information. Think of it as a way to fill in blanks: you give it a list of values, and it simply returns the very first one that isn't NULL
. This is perfect for when you need a fallback option to ensure a result is always shown.
2. SQL Chunk: Let's say you have a table of employees, but some don't have a phone number listed. You don't want to see a bunch of NULL
s in your report. You can use COALESCE
to display a clear message instead.
SELECT
EmployeeID,
FirstName,
COALESCE(PhoneNumber, 'Phone not available') AS ContactInfo
FROM
Employees;
(In this example, if PhoneNumber
is NULL
, the query will show 'Phone not available' in the ContactInfo
column instead.)
3. SQL Challenge: Sometimes you have more than one backup plan. What if you have a mobile number and a landline number, and you want to use the mobile number if it exists, but fall back to the landline if it doesn't? COALESCE
can handle this by checking values in a specific order.
SELECT
CustomerID,
FirstName,
COALESCE(MobilePhone, LandlinePhone, 'No contact info') AS PreferredContact
FROM
Customers;
(This query will check for a MobilePhone
first. If it's NULL
, it will then check for a LandlinePhone
. If both are NULL
, it will display 'No contact info'.)
4. SQL Mistake: A very common mistake is performing a calculation where one of the values might be NULL
. When you multiply or add to a NULL
value, the result is always NULL
. This can lead to wrong totals in your reports. COALESCE
can prevent this by providing a default value for any missing numbers.
-- The FIX: Use COALESCE to provide a default value (0.00) for NULLs
-- Assuming TaxRate is stored as a decimal (e.g., 0.08 for 8% tax)
SELECT
ProductID,
TotalSales,
COALESCE(TaxRate, 0.00) AS EffectiveTaxRate,
TotalSales * COALESCE(TaxRate, 0.00) AS TaxAmount
FROM
SalesData;
(Here, if TaxRate
is NULL
, the calculation will use 0.00
instead, ensuring that the TaxAmount
is not unexpectedly NULL
.)
5. SQL in Practice: In e-commerce, personalization is key. Your customer table might have a PreferredName
column, but many customers have only provided a FirstName
. You want to always use a personal name in your emails and on the website. COALESCE
is the perfect solution for this.
SELECT
CustomerID,
COALESCE(PreferredName, FirstName) AS DisplayName,
Email
FROM
Customers;
(This query will check for a PreferredName
first. If one is found, it's used. If not, it will automatically fall back to the FirstName
, ensuring your application always has a name to display.)
6. SQL Resource: SQL NULL Functions | COALESCE, ISNULL, NULLIF, IS (NOT) NULL | #SQL Course 18 https://www.youtube.com/watch?v=DGInSBWqRNQ This YouTube video provides a clear, beginner-friendly explanation of the COALESCE
function. It also compares COALESCE
to a similar function, ISNULL
, which is a common point of confusion for new SQL users. The video's practical examples and straightforward teaching style make it an excellent resource for solidifying your understanding.