Menu
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS DSA TYPESCRIPT ANGULAR ANGULARJS GIT POSTGRESQL MONGODB ASP AI R GO KOTLIN SWIFT SASS VUE GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE INTRO TO PROGRAMMING INTRO TO HTML & CSS BASH RUST

SQL Tutorial

SQL HOME SQL Intro SQL Syntax SQL Select SQL Select Distinct SQL Where SQL Order By SQL And SQL Or SQL Not SQL Insert Into SQL Null Values SQL Update SQL Delete SQL Select Top SQL Aggregate Functions SQL Min() SQL Max() SQL Count() SQL Sum() SQL Avg() SQL Like SQL Wildcards SQL In SQL Between SQL Aliases SQL Joins SQL Inner Join SQL Left Join SQL Right Join SQL Full Join SQL Self Join SQL Union SQL Union All SQL Group By SQL Having SQL Exists SQL Any SQL All SQL Select Into SQL Insert Into Select SQL Case SQL Null Functions SQL Stored Procedures SQL Comments SQL Operators

SQL Database

SQL Create DB SQL Drop DB SQL Backup DB SQL Create Table SQL Drop Table SQL Alter Table SQL Constraints SQL Not Null SQL Unique SQL Primary Key SQL Foreign Key SQL Check SQL Default SQL Index SQL Auto Increment SQL Dates SQL Views SQL Injection SQL Hosting SQL Data Types

SQL References

SQL Keywords MySQL Functions SQL Server Functions MS Access Functions SQL Quick Ref

SQL Examples

SQL Examples SQL Editor SQL Quiz SQL Exercises SQL Server SQL Syllabus SQL Study Plan SQL Bootcamp SQL Certificate SQL Training

SQL NULL Functions


SQL COALESCE(), IFNULL(), ISNULL(), and NVL() Functions

Operations involving NULL values can sometimes lead to unexpected results.

SQL has some built-in functions to handle NULL values, and the most common functions are:

  • COALESCE() - The preferred standard. (Works in MySQL, SQL Server and Oracle)
  • IFNULL() - (MySQL)
  • ISNULL() - (SQL Server)
  • NVL() - (Oracle)
  • IsNull() - (MS Access)

Note: A NULL value represents an unknown or missing data in a database field. It is not a value itself, but a placeholder to indicate the absence of data.


Demo Database

Assume we have the following "Products" table:

PId ProductName Price InStock InOrder
1 Jarlsberg 10.45 16 15
2 Mascarpone 32.56 23 null
3 Gorgonzola 15.67 9 20

The "InOrder" column is optional, and may contain NULL values.

Now look at the following SQL statement:

SELECT ProductName, Price * (InStock + InOrder)
FROM Products;

Note: In the SQL above, if any of the "InOrder" values are NULL, the result will be NULL!



The COALESCE() Function

The COALESCE() function is the preferred standard for handling potential NULL values.

The COALESCE() function returns the first non-NULL value in a list of values.

The COALESCE() function works in MySQL, SQL Server, and Oracle (not in MS Access).

Syntax

COALESCE(val1, val2, ...., val_n)

Here we use the COALESCE() function to replace NULL values with 0:

SELECT ProductName, Price * (InStock + COALESCE(InOrder, 0))
FROM Products;

The IFNULL() Function (MySQL)

The MySQL IFNULL() function replaces NULL with a specified value.

Syntax

IFNULL(expr, alt)

Here we replace NULL values with 0:

SELECT ProductName, Price * (InStock + IFNULL(InOrder, 0))
FROM Products;

The ISNULL() Function (SQL Server)

The SQL Server ISNULL() function replaces NULL with a specified value.

Syntax

ISNULL(expr, alt)

Here we replace NULL values with 0:

SELECT ProductName, Price * (InStock + ISNULL(InOrder, 0))
FROM Products;

The NVL() Function (Oracle)

The Oracle NVL() function replaces NULL with a specified value.

Syntax

NVL(expr, alt)

Here we replace NULL values with 0:

SELECT ProductName, Price * (InStock + NVL(InOrder, 0))
FROM Products;

The IsNull() Function (MS Access)

The MS Access IsNull() function returns TRUE if the expression is NULL, otherwise FALSE.

Syntax

IsNull(expr)

The MS Access IIf() function returns one of two parts, depending on the evaluation of the expression.

Syntax

IIf(expr, truepart, falsepart)
  • expr - Required. The expression to evaluate
  • truepart - Value to return if expr is True
  • falsepart - Value to return if expr is False

Here we replace NULL values with 0:

SELECT ProductName, Price * (InStock + IIf(IsNull(InOrder), 0, InOrder))
FROM Products;



×

Contact Sales

If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail:
sales@w3schools.com

Report Error

If you want to report an error, or if you want to make a suggestion, send us an e-mail:
help@w3schools.com

W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookies and privacy policy.

Copyright 1999-2026 by Refsnes Data. All Rights Reserved. W3Schools is Powered by W3.CSS.

-->