Coding/Learn/sql/sql null functions
SQL & Relational Database Engineering Complete Course
01.Introduction & Relational Database Architecture
02.Syntax, Clauses & Execution Order
03.SELECT: Column Projection & Expressions
04.SELECT DISTINCT & Row Deduplication
05.WHERE Clause: Filtering Predicates & Comparison
06.ORDER BY: Sorting, Multi-Column & NULLS Ordering
07.Logical Operators: AND, OR, NOT & Operator Precedence
08.Comments: Single-Line (--), Multi-Line (/* */) & Query Hints
09.Operators: Arithmetic, Bitwise & String Concatenation
10.LIKE Operator & Wildcard Characters (%, _)
11.IN & NOT IN: Membership Operators & Subqueries
12.BETWEEN: Range Filtering for Numbers, Dates & Text
13.NULL Values: Three-Valued Logic, IS NULL & IS NOT NULL
14.Aliases: AS Keyword for Columns & Tables
15.SELECT TOP, LIMIT & OFFSET Pagination
16.INSERT INTO: Single & Multi-Row Insertions
17.UPDATE: Modifying Existing Records & Safe WHERE Rules
18.DELETE: Removing Rows vs TRUNCATE TABLE
19.SELECT INTO & Table Backups (CREATE TABLE AS SELECT)
20.INSERT INTO SELECT: Bulk Data Migration
21.Aggregate Functions: Statistical Summaries
22.MIN() & MAX(): Finding Extremes Across Types
23.COUNT: COUNT(*), COUNT(column) & COUNT(DISTINCT)
24.SUM() & AVG(): Numerical Aggregation & Averages
25.GROUP BY: Aggregation Buckets & Categorical Metrics
26.HAVING: Filtering Aggregated Groups vs WHERE
27.Joins Architecture: Relational Modeling & Venn Diagrams
28.INNER JOIN: Matching Intersections Across Tables
29.LEFT JOIN: Preserving Unmatched Left Rows & Finding Orphans
30.RIGHT JOIN: Preserving Unmatched Right Rows
31.FULL JOIN: Full Outer Join & Complete Reconciliation
32.SELF JOIN: Hierarchies, Trees & Parent-Child Relationships
33.UNION: Combining Result Sets with Automatic Deduplication
34.UNION ALL vs UNION: Performance & Duplicates
35.EXISTS & NOT EXISTS: Correlated Subqueries
36.ANY & ALL: Quantified Comparison Subqueries
37.CASE: Conditional Expressions & Data Transposition
38.Null Functions: COALESCE, IFNULL, ISNULL & NULLIF
39.Stored Procedures, Functions & Query Parameters
40.CREATE & DROP DATABASE: Environment Lifecycle
41.CREATE TABLE: Defining Schemas & Types
42.DROP & TRUNCATE TABLE: Structure vs Data Purging
43.ALTER TABLE: Modifying Columns & Schema Evolution
44.AUTO INCREMENT & Sequences: Identity Generation
45.Date & Time Formats: Timestamp Manipulation
46.Views: Virtual Tables & Security Layers
47.Constraints Overview: Relational Integrity
48.NOT NULL & UNIQUE: Data Invariants
49.PRIMARY KEY: Entity Uniqueness & Clustering
50.FOREIGN KEY: Referential Integrity & Cascades
51.CHECK & DEFAULT: Business Rules at DB Layer
52.CREATE INDEX: B-Trees & Query Optimization
53.Injection Defense: Threat Models & Prevention
54.Parameters & Prepared Statements: Safe Execution
55.Database Engines & Hosting Architecture
56.Dialect References & Data Type Standards
57.Production Best Practices & Query Tuning Checklist
58.Interactive Exercises: Multi-Table Analytics Challenges
59.Comprehensive Assessment & Knowledge Check
60.Capstone Project: Enterprise Analytics Engine
61.Mastery Certification & Graduate Verification
Course Certificate0%

Complete all lessons to earn

LearnSQL Null Functions: COALESCE, IFNULL, ISNULL & NULLIF
38 / 61 0%
Lesson 38 of 61
5 mins read

SQL Null Functions: COALESCE, IFNULL, ISNULL & NULLIF

PreviousNext Lesson
In Plain English

SQL provides dedicated scalar functions to manage missing data gracefully: `COALESCE(val1, val2, ...)` returns the first non-null value from an argument list; `NULLIF(a, b)` returns `NULL` if arguments are equal (crucial for preventing division-by-zero errors).

The Mental Model

"`COALESCE` is a prioritized backup contact list: "Try calling mobile phone; if missing (NULL), try home phone; if missing, fall back to company main desk.""

Deep Dive: How It Works

COALESCE (ANSI Universal): `COALESCE(work_email, personal_email, '[email protected]')`. Accepts unlimited arguments, evaluating left-to-right.

Engine Variants: `IFNULL(a, b)` (MySQL/SQLite 2-arg shorthand), `ISNULL(a, b)` (SQL Server), `NVL(a, b)` (Oracle). `COALESCE` is universally portable across ALL engines.

Preventing Division-by-Zero with NULLIF: `total_sales / NULLIF(total_orders, 0)`. If total_orders is 0, NULLIF turns it into NULL, returning NULL instead of crashing the database!

Syntax Blueprint

SELECT
  name,
  COALESCE(discount_rate, 0.0) AS applied_discount,
  total_revenue / NULLIF(units_sold, 0) AS avg_unit_price
FROM products;

Use COALESCE for default fallbacks and NULLIF to prevent division-by-zero crashes.

PointCore Rules to Remember

Point star
COALESCE Portability: Standard ANSI SQL supported across Postgres, MySQL, SQLite, Oracle, and SQL Server.
Point star
Prevent Zero Division: `x / NULLIF(y, 0)` safely returns NULL instead of fatal runtime database errors.
Point star
Short-Circuit Evaluation: COALESCE stops evaluating arguments as soon as it encounters the first non-null entry.

Common Beginner Traps & How to Fix Them

Mistake:Dividing by raw columns `sales / count` without checking for zero.

Why it happens: A single 0 value in the divisor aborts the entire production query with "Division by zero".

How to fix: Always wrap the divisor with `NULLIF(divisor, 0)`.

Pro Tip: In user profiles, use `COALESCE(display_name, first_name || ' ' || last_name, email)` to provide clean fallback names.

Live Interactive Example

Hit Run Code to see it live
Safe Null Fallbacks and Division-by-Zero Protection
Python 3.12
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Output Console
Click "Run Code" to view the rendered output.
How it works: COALESCE selected the first valid phone number, and NULLIF safely returned NULL for Uptown Kiosk (0 customers).

Your Turn: Micro Challenge

No pressure! Edit the starter code below and test your solution with instant feedback.

Micro Exercise

Provide Default with COALESCE

  • PointSelect `name`, `COALESCE(nickname, name) AS display_name` from `users`.
1
2
3
4
5
Sandbox Output
Click "Run & Check" to test your solution.

Finished reading and practicing?

Mark this lesson as completed to update your course progress.

PreviousNext Lesson
Overview100 SheetLearnCertificates